summaryrefslogtreecommitdiffstats
path: root/src/include/usr/hwas
diff options
context:
space:
mode:
authorMatt Raybuck <mraybuc@us.ibm.com>2018-12-21 10:51:12 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-02-15 11:26:13 -0600
commit9825db50591c9579511fabb677a742a5bbe5a074 (patch)
tree29b4c9072fcd26a30c311805ae622111431df1f7 /src/include/usr/hwas
parent8995ddcdc7682002872937c0a343b7df36f4502c (diff)
downloadtalos-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.H17
-rw-r--r--src/include/usr/hwas/common/pgLogic.H18
-rw-r--r--src/include/usr/hwas/common/vpdConstants.H5
-rw-r--r--src/include/usr/hwas/hwasPlatReasonCodes.H10
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
OpenPOWER on IntegriCloud