diff options
author | Matt Raybuck <mraybuc@us.ibm.com> | 2018-12-21 10:51:12 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-02-15 11:26:13 -0600 |
commit | 9825db50591c9579511fabb677a742a5bbe5a074 (patch) | |
tree | 29b4c9072fcd26a30c311805ae622111431df1f7 /src/include/usr/hwas | |
parent | 8995ddcdc7682002872937c0a343b7df36f4502c (diff) | |
download | talos-hostboot-9825db50591c9579511fabb677a742a5bbe5a074.tar.gz talos-hostboot-9825db50591c9579511fabb677a742a5bbe5a074.zip |
Better logging for Partial Good Issues (2/2)
PG issues were only ever displayed in traces. This commit creates a new
error log user detail section that will display the PG vector and
highlight which entries have issues. In addition, targets that are
determined to be non-functional will be added to the log and a hardware
callout will be added if a chip is found non-functional.
Change-Id: I9b401bcd5686951303946789034671c1a395fb91
RTC:180365
CMVC-Prereq:1075293
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70004
Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr/hwas')
-rw-r--r-- | src/include/usr/hwas/common/hwas_reasoncodes.H | 17 | ||||
-rw-r--r-- | src/include/usr/hwas/common/pgLogic.H | 18 | ||||
-rw-r--r-- | src/include/usr/hwas/common/vpdConstants.H | 5 | ||||
-rw-r--r-- | src/include/usr/hwas/hwasPlatReasonCodes.H | 10 |
4 files changed, 32 insertions, 18 deletions
diff --git a/src/include/usr/hwas/common/hwas_reasoncodes.H b/src/include/usr/hwas/common/hwas_reasoncodes.H index cc133c323..09e0e2a56 100644 --- a/src/include/usr/hwas/common/hwas_reasoncodes.H +++ b/src/include/usr/hwas/common/hwas_reasoncodes.H @@ -37,7 +37,9 @@ namespace HWAS MOD_RUNTIME_DECONFIG = 0x06, MOD_DISABLE_OBUS = 0x07, MOD_UPDATE_PROC_MEM_TO_USE = 0x08, - MOD_IS_DESCENDANT_FUNCTIONAL = 0x09 + MOD_IS_DESCENDANT_FUNCTIONAL = 0x09, + MOD_FIND_RULES_FOR_TARGET = 0x0A, + MOD_DISCOVER_TARGETS = 0x0B, }; enum HwasReasonCode @@ -70,7 +72,20 @@ namespace HWAS RC_NO_PG_LOGIC = HWAS_COMP_ID | 0x16, RC_SYSAVAIL_NO_OCMBS_FUNC = HWAS_COMP_ID | 0x17, RC_SYSAVAIL_NO_MEMORY_PRESENT = HWAS_COMP_ID | 0x18, + RC_PG_INDEX_INVALID = HWAS_COMP_ID | 0x19, + RC_PARTIAL_GOOD_INFORMATION = HWAS_COMP_ID | 0x1A, }; + + enum HwasPlatUserDetailsTypes + { + HWAS_UDT_PARTIAL_GOOD_DATA = 0x01 + }; + + enum HwasPlatUserDetailsVersions + { + HWAS_UDT_VERSION_1 = 0x01 + }; + }; #endif diff --git a/src/include/usr/hwas/common/pgLogic.H b/src/include/usr/hwas/common/pgLogic.H index 8a60f0abd..8ecb1631c 100644 --- a/src/include/usr/hwas/common/pgLogic.H +++ b/src/include/usr/hwas/common/pgLogic.H @@ -421,19 +421,23 @@ namespace PARTIAL_GOOD /** * @brief This function will lookup the list of applicable rules for the * given target and return them as a vector of PartialGoodLogic. - * This function should always return a vector of size >= 1. An - * empty vector indicates that the target isn't represented in - * the rules table which is an error of omission. + * This function should always return a vector of size >= 1. If + * that isn't the case then an error will be returned by this + * function. * - * @param[in] i_target The target to find pg rules for. + * @param[in] i_target The target to find pg rules for. * - * @return vector_pgLogic_t A vector of PartialGoodLogic structs + * @param[out] o_pgLogic A vector of PartialGoodLogic structs * representing the list of applicable rules * used to verify if a target is functional * or not. + * + * @return errlHndl_t An error that occured while getting pg + * logic or nullptr. */ - pgLogic_t - findRulesForTarget(const TARGETING::TargetHandle_t &i_target) const; + errlHndl_t + findRulesForTarget(const TARGETING::TargetHandle_t &i_target, + pgLogic_t &o_pgLogic) const; private: // A map that will hold all of the PG rules for all targets. If a target diff --git a/src/include/usr/hwas/common/vpdConstants.H b/src/include/usr/hwas/common/vpdConstants.H index a82eb3fb3..498f6d622 100644 --- a/src/include/usr/hwas/common/vpdConstants.H +++ b/src/include/usr/hwas/common/vpdConstants.H @@ -29,6 +29,11 @@ namespace HWAS { +// NOTE: Many of the VPD_CP00_PG_X constants are used to construct an "All Good" +// vector to compare against the PG vector of a system. Changes to +// constants in this file should be reflected in +// src/usr/hwas/plugins/errludParser_pgData.H + // constants the platReadPartialGood will use for looking at the VPD data const uint32_t VPD_CP00_PG_DATA_LENGTH = 128; const uint32_t VPD_CP00_PG_HDR_LENGTH = 1; diff --git a/src/include/usr/hwas/hwasPlatReasonCodes.H b/src/include/usr/hwas/hwasPlatReasonCodes.H index b02de6789..6ca33397a 100644 --- a/src/include/usr/hwas/hwasPlatReasonCodes.H +++ b/src/include/usr/hwas/hwasPlatReasonCodes.H @@ -52,18 +52,8 @@ namespace HWAS RC_BAD_MCA = HWAS_COMP_ID | 0x85, RC_RT_NULL_FIRMWARE_REQUEST_PTR = HWAS_COMP_ID | 0x86, RC_RT_NULL_FIRMWARE_MSG_PTR = HWAS_COMP_ID | 0x87, - RC_PARTIAL_GOOD_INFORMATION = HWAS_COMP_ID | 0x88, }; - enum HwasPlatUserDetailsTypes - { - HWAS_UDT_PARTIAL_GOOD_DATA = 0x01, - }; - - enum HwasPlatUserDetailsVersions - { - HWAS_UDT_VERSION_1 = 0x01, - }; }; #endif |