summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorRichard J. Knight <rjknight@us.ibm.com>2018-03-05 18:35:40 -0600
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2018-04-12 16:31:07 -0400
commit0fbaeccfec9bfc60e37dad4a7660040862b1e2ac (patch)
treed366b7f579db62549f71e59ff75b3dd5029a7e6e /src/include
parent9964a274521177f062debb85fbd2e7b3022847be (diff)
downloadtalos-hostboot-0fbaeccfec9bfc60e37dad4a7660040862b1e2ac.tar.gz
talos-hostboot-0fbaeccfec9bfc60e37dad4a7660040862b1e2ac.zip
Add deconfigTargetAtRuntime interface
-PRD will call this function in response to a core unit checkstop detected by PHYP. The new function will mark the core as non-functional and call a hardware procdure to update the multicast groups for cores and chiplets. The procedure will also update the OCC core configuration status and the quad core status registers which reflect the number of enable cores/quad in the system at runtime. Change-Id: Ia7fc3f47dc1fee1f84d877d3d56b609d1aee1b17 RTC:188918 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/55154 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Richard Ward <rward15@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/usr/hwas/common/deconfigGard.H56
-rw-r--r--src/include/usr/hwas/common/hwas_reasoncodes.H6
-rw-r--r--src/include/usr/hwas/hwasPlatDeconfigGard.H2
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. */
/* */
/* */
OpenPOWER on IntegriCloud