diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2018-07-09 22:30:37 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2018-07-12 10:43:33 -0400 |
commit | de5c390af3c74a98bf222cf3de57efff1f438e51 (patch) | |
tree | ee9d67cb8bb70f801bb5fffea22a4b0395cb6be2 /src/usr/diag/prdf/common/framework/register | |
parent | 6c5154f68c507a77e8a77bb0a9e78435d79efd6d (diff) | |
download | talos-hostboot-de5c390af3c74a98bf222cf3de57efff1f438e51.tar.gz talos-hostboot-de5c390af3c74a98bf222cf3de57efff1f438e51.zip |
PRD: ignore SCOM errors in rule code summary construct
This is a bit unusual, but we are going to ignore SiCOM failures.
This takes care of a corner case where one of the summary registers
in the list returns an error, but there is another summary register
with an active attention, which would be ignored if we gave a bad
return code.
Change-Id: I25ae90ac424e28422aab5d48af128b03ccfb1344
CQ: SW436299
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/62083
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/62182
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/common/framework/register')
-rwxr-xr-x | src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H b/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H index 07d5ac981..00f39fdc1 100755 --- a/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H +++ b/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2017 */ +/* Contributors Listed Below - COPYRIGHT 2012,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -116,7 +116,24 @@ class SummaryRegister : public SCAN_COMM_REGISTER_CLASS return *this; } - virtual uint32_t Read() const { return iv_child->Read(); } + virtual uint32_t Read() const + { + uint32_t rc = iv_child->Read(); + if ( PRD_SCANCOM_FAILURE == rc ) + { + // This is a bit unusual, but we are going to ignore SCOM failures. + // This takes care of a corner case where one of the summary + // registers in the list returns an error, but there is another + // summary register with an active attention, which would be ignored + // if we return a bad rc. + PRDF_INF( "[SummaryRegister::read] SCOM failure on register ID " + "0x%04x, ignoring error", iv_child->GetId() ); + rc = SUCCESS; + iv_child->clearAllBits(); // just in case + } + return rc; + } + virtual uint32_t Write() { return iv_child->Write(); } const BitString * GetBitString( |