diff options
author | Matt Ploetz <maploetz@us.ibm.com> | 2013-09-24 11:03:02 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-10-12 14:51:14 -0500 |
commit | 4e536844c21b0ab7c256e49c63e8e9520c9e1d19 (patch) | |
tree | 03fa743c3e3f5c00cf1d44a936a3c92c7673b48c /src/include/usr | |
parent | effbdc22da60af7ae67f69005f63a6a6e4db773d (diff) | |
download | talos-hostboot-4e536844c21b0ab7c256e49c63e8e9520c9e1d19.tar.gz talos-hostboot-4e536844c21b0ab7c256e49c63e8e9520c9e1d19.zip |
Hardware Reconfigure loop and Istepdispatcher redesign
Change-Id: Icc037be6b0eac67d1b5196180f8a53f083afa085
RTC: 34055
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/6324
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r-- | src/include/usr/hwas/common/deconfigGard.H | 16 | ||||
-rw-r--r-- | src/include/usr/initservice/initserviceif.H | 17 | ||||
-rw-r--r-- | src/include/usr/initservice/initsvcreasoncodes.H | 32 | ||||
-rw-r--r-- | src/include/usr/initservice/istepdispatcherif.H | 60 |
4 files changed, 58 insertions, 67 deletions
diff --git a/src/include/usr/hwas/common/deconfigGard.H b/src/include/usr/hwas/common/deconfigGard.H index 6a9c3e479..c1288978e 100644 --- a/src/include/usr/hwas/common/deconfigGard.H +++ b/src/include/usr/hwas/common/deconfigGard.H @@ -228,6 +228,19 @@ public: errlHndl_t deconfigureTarget(TARGETING::Target & i_target, const uint32_t i_errlEid, bool i_evenAtRunTime = false); + + /** + * @brief Get the Deconfigure Status + * + * This function returns a uint32_t counter that can be used to indicate + * whether Targets have been deconfigured. The counter wraps, so the user + * should just check for != to determine if a deconfigure has happened + * since the last time this was called. + * + * @return uint32_t 'counter' of deconfigure events + */ + uint32_t getDeconfigureStatus(); + /** * @brief Registers a Deferred Deconfigure * @@ -568,6 +581,9 @@ private: */ bool iv_XABusEndpointDeconfigured; + // counter, used to tell if there were deconfigure 'events'. + uint32_t iv_deconfigCount; + }; // DeconfigGard HWAS_DECLARE_SINGLETON(HWAS::DeconfigGard,theDeconfigGardSingleton); diff --git a/src/include/usr/initservice/initserviceif.H b/src/include/usr/initservice/initserviceif.H index 6ecfa4b47..9825e041d 100644 --- a/src/include/usr/initservice/initserviceif.H +++ b/src/include/usr/initservice/initserviceif.H @@ -114,24 +114,27 @@ void doShutdown ( uint64_t i_status, void Shutdown( uint64_t i_status ); /** - * @brief This function will return whether or not we are SPless + * @brief Returns if Service Processor Base Services are available * - * @return bool - whether we are SPLESS. + * If true then the Hostboot<->SP mailbox is enabled and HWSV is + * providing base services + * + * @return bool - true if SP Base Services are available */ -inline bool spLess ( void ) +inline bool spBaseServicesEnabled() { - bool spless = false; + bool spBaseServicesEnabled = false; TARGETING::Target * sys = NULL; TARGETING::targetService().getTopLevelTarget( sys ); TARGETING::SpFunctions spfuncs; if( sys && sys->tryGetAttr<TARGETING::ATTR_SP_FUNCTIONS>(spfuncs) && - !spfuncs.baseServices ) + spfuncs.baseServices ) { - spless = true; + spBaseServicesEnabled = true; } - return spless; + return spBaseServicesEnabled; } } diff --git a/src/include/usr/initservice/initsvcreasoncodes.H b/src/include/usr/initservice/initsvcreasoncodes.H index 193e2aeee..03facd4ea 100644 --- a/src/include/usr/initservice/initsvcreasoncodes.H +++ b/src/include/usr/initservice/initsvcreasoncodes.H @@ -53,28 +53,16 @@ enum InitServiceModuleID enum InitServiceReasonCode { - START_TASK_FAILED = INITSVC_COMP_ID | 0x01, - INVALID_TASK_TYPE = INITSVC_COMP_ID | 0x02, - START_FN_FAILED = INITSVC_COMP_ID | 0x03, - NULL_FN_PTR = INITSVC_COMP_ID | 0x04, - FORCE_FAIL = INITSVC_COMP_ID | 0x05, - CXXTEST_FAILED_TEST = INITSVC_COMP_ID | 0x06, - SHUTDOWN_FLUSH_FAILED = INITSVC_COMP_ID | 0x07, - WAIT_TASK_FAILED = INITSVC_COMP_ID | 0x08, - WAIT_FN_FAILED = INITSVC_COMP_ID | 0x09, - INITSVC_LOAD_MODULE_FAILED = INITSVC_COMP_ID | 0x0a, - // not used - ISTEP_SINGLESTEP_ASYNC_RCVD = INITSVC_COMP_ID | 0x0c, - ISTEP_BKPOINT_ASYNC_RCVD = INITSVC_COMP_ID | 0x0d, - ISTEP_WAITFORSYNC_BAD_MSG = INITSVC_COMP_ID | 0x0e, - ISTEP_MULTIPLE_ISTEP_REQ = INITSVC_COMP_ID | 0x0f, - ISTEP_FAILED = INITSVC_COMP_ID | 0x10, - LAST_ISTEP_FAILED = INITSVC_COMP_ID | 0x11, - NO_MSG_PRESENT = INITSVC_COMP_ID | 0x12, - ISTEP_INVALID_ISTEP = INITSVC_COMP_ID | 0x13, - ISTEP_FAPI_ATTR_READ_FAILED = INITSVC_COMP_ID | 0x14, - ISTEP_DELAYED_DECONFIG = INITSVC_COMP_ID | 0x15, - + START_TASK_FAILED = INITSVC_COMP_ID | 0x01, + START_FN_FAILED = INITSVC_COMP_ID | 0x02, + CXXTEST_FAILED_TEST = INITSVC_COMP_ID | 0x03, + SHUTDOWN_FLUSH_FAILED = INITSVC_COMP_ID | 0x04, + WAIT_TASK_FAILED = INITSVC_COMP_ID | 0x05, + WAIT_FN_FAILED = INITSVC_COMP_ID | 0x06, + INITSVC_LOAD_MODULE_FAILED = INITSVC_COMP_ID | 0x07, + NO_MSG_PRESENT = INITSVC_COMP_ID | 0x08, + ISTEP_RECONFIG_LOOP_ENTERED = INITSVC_COMP_ID | 0x09, + ISTEP_FAILED_DUE_TO_DECONFIG = INITSVC_COMP_ID | 0x0a, }; enum InitServiceUserDetailDataSubSection diff --git a/src/include/usr/initservice/istepdispatcherif.H b/src/include/usr/initservice/istepdispatcherif.H index a73767313..6316dfad5 100644 --- a/src/include/usr/initservice/istepdispatcherif.H +++ b/src/include/usr/initservice/istepdispatcherif.H @@ -1,26 +1,25 @@ -/* IBM_PROLOG_BEGIN_TAG - * This is an automatically generated prolog. - * - * $Source: src/include/usr/initservice/istepdispatcherif.H $ - * - * IBM CONFIDENTIAL - * - * COPYRIGHT International Business Machines Corp. 2012 - * - * p1 - * - * Object Code Only (OCO) source materials - * Licensed Internal Code Source Materials - * IBM HostBoot Licensed Internal Code - * - * The source code for this program is not published or other- - * wise divested of its trade secrets, irrespective of what has - * been deposited with the U.S. Copyright Office. - * - * Origin: 30 - * - * IBM_PROLOG_END_TAG - */ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/include/usr/initservice/istepdispatcherif.H $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2012,2013 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ #ifndef __INITSERVICE_ISTEPDISPATCHERIF_H #define __INITSERVICE_ISTEPDISPATCHERIF_H @@ -59,21 +58,6 @@ errlHndl_t sendSyncPoint ( void ); */ errlHndl_t sendIstepCompleteMsg ( void ); - -/** - * @brief This function is to be used to query the current Istep/Substep - * values. This will indicate the currently running Istep/Substep. - * - * @param[out] o_iStep - The current Istep value. - * - * @param[out] o_subStep - The current SubStep value. - * - * @return NONE. - */ -void getIstepInfo ( uint8_t & o_iStep, - uint8_t & o_subStep ); - - } #endif |