diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/usr/hwas/common/deconfigGard.H | 56 | ||||
-rw-r--r-- | src/include/usr/hwas/common/hwas_reasoncodes.H | 6 | ||||
-rw-r--r-- | src/include/usr/hwas/hwasPlatDeconfigGard.H | 2 |
3 files changed, 62 insertions, 2 deletions
diff --git a/src/include/usr/hwas/common/deconfigGard.H b/src/include/usr/hwas/common/deconfigGard.H index 25e12f455..ad1e80282 100644 --- a/src/include/usr/hwas/common/deconfigGard.H +++ b/src/include/usr/hwas/common/deconfigGard.H @@ -455,6 +455,62 @@ public: */ void platPostDeconfigureTarget(TARGETING::Target * i_pTarget); + /** + * @brief Deconfigures a Target at runtime + * + * Called from PRD, in response to a checkstop attention from phyp + * + * This function will call the platform specific function to do the + * deconfigure actions. + * + * NOTE: Currently only core targets are supported + * + * @param[in] i_pTarget const pointer to the core target to deconfigure + * @param[in] i_deconfigureAction Deconfigure options - + * FULLY_AT_RUNTIME + * @param[in] i_deconfigErrl - error log assocated with this deconfig + * request. The error handle is non-null + * the eid of the errorlog will be listed as + * the deconfig reason, otherwise the + * reason will be DECONFIGURED_BY_PRD + * + * @return errlHndl_t. Error log handle. + */ + errlHndl_t deconfigureTargetAtRuntime( + TARGETING::ConstTargetHandle_t const i_pTarget, + const DeconfigureFlags i_deconfigureAction, + const errlHndl_t i_deconfigErrl); + + /** + * + * @brief Deconfigures a Target at runtime + * + * Platform specific implementation to deconfgure a target at runtime + * + * This function will deconfigure the target, do any + * post deconfigure actions and will skip deconfiguring any associated + * child targets. Any errors deconfiguring targets are committed and + * the function continues. The only errors returned are usage errors. + * + * @param[in] i_pTarget const pointer to Target to deconfigure. + * @param[in] i_deconfigureAction Deconfigure options - + * FULLY_AT_RUNTIME + * @param[in] i_deconfigErrl - error log assocated with this deconfig + * request. The error handle is non-null + * the eid of the errorlog will be listed as + * the deconfig reason, otherwise the + * reason will be DECONFIGURED_BY_PRD + * + * @return errlHndl_t. Error log handle. + */ + +#ifdef __HOSTBOOT_RUNTIME + errlHndl_t platDeconfigureTargetAtRuntime( + TARGETING::ConstTargetHandle_t const i_pTarget, + const DeconfigureFlags i_deconfigureAction, + const errlHndl_t i_deconfigErrl); +#endif + protected: /** diff --git a/src/include/usr/hwas/common/hwas_reasoncodes.H b/src/include/usr/hwas/common/hwas_reasoncodes.H index 09d90a796..54e5ec494 100644 --- a/src/include/usr/hwas/common/hwas_reasoncodes.H +++ b/src/include/usr/hwas/common/hwas_reasoncodes.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2017 */ +/* Contributors Listed Below - COPYRIGHT 2012,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -34,6 +34,7 @@ namespace HWAS MOD_CHECK_MIN_HW = 0x03, MOD_DECONFIG_TARGETS_FROM_GARD = 0x04, MOD_VALIDATE_EC_LEVELS = 0x05, + MOD_RUNTIME_DECONFIG = 0x06, }; enum HwasReasonCode @@ -58,6 +59,9 @@ namespace HWAS RC_SYSAVAIL_NO_NX_FUNC = HWAS_COMP_ID | 0x0E, RC_EC_MISMATCH = HWAS_COMP_ID | 0x0F, RC_FAILED_EC_VALIDATION = HWAS_COMP_ID | 0x10, + RC_INVALID_PARAM = HWAS_COMP_ID | 0x11, + RC_NOT_AT_RUNTIME = HWAS_COMP_ID | 0x12, + RC_NULL_TARGET = HWAS_COMP_ID | 0x13, }; }; diff --git a/src/include/usr/hwas/hwasPlatDeconfigGard.H b/src/include/usr/hwas/hwasPlatDeconfigGard.H index c439a4215..4f74e5d4d 100644 --- a/src/include/usr/hwas/hwasPlatDeconfigGard.H +++ b/src/include/usr/hwas/hwasPlatDeconfigGard.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2015 */ +/* Contributors Listed Below - COPYRIGHT 2012,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ |