summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/framework/register
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2018-07-09 22:30:37 -0500
committerZane C. Shelley <zshelle@us.ibm.com>2018-07-12 10:43:33 -0400
commitde5c390af3c74a98bf222cf3de57efff1f438e51 (patch)
treeee9d67cb8bb70f801bb5fffea22a4b0395cb6be2 /src/usr/diag/prdf/common/framework/register
parent6c5154f68c507a77e8a77bb0a9e78435d79efd6d (diff)
downloadtalos-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-xsrc/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H21
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(
OpenPOWER on IntegriCloud