summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2018-09-27 13:16:10 -0500
committerZane C. Shelley <zshelle@us.ibm.com>2018-10-01 14:59:33 -0500
commitaac8421a2554ee5a82b56c69c4d92d77d546a7c0 (patch)
tree62951718e3abfbc283e58469aba9f13145b6e7a7 /src/usr/diag/prdf
parentc33d5206a1af0881bc2f9ff21eed29822b03f8b4 (diff)
downloadtalos-hostboot-aac8421a2554ee5a82b56c69c4d92d77d546a7c0.tar.gz
talos-hostboot-aac8421a2554ee5a82b56c69c4d92d77d546a7c0.zip
PRD: change register used to query for active chnl fail attn
Change-Id: Ia0c17e4daa2194109ca1dfe2c98dd07363fc2f53 CQ: SW446765 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66741 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66808 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')
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/mem/prdfMemUtils.C12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemUtils.C b/src/usr/diag/prdf/common/plat/mem/prdfMemUtils.C
index 8b651182d..d2d748e30 100755
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemUtils.C
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemUtils.C
@@ -599,11 +599,19 @@ bool __queryUcsCentaur<TYPE_MEMBUF>( ExtensibleChip * i_chip )
uint32_t o_activeAttn = false;
- SCAN_COMM_REGISTER_CLASS * fir = i_chip->getRegister("GLOBAL_CS_FIR");
+ // We can't use the GLOBAL_CS_FIR. It will not clear automatically when a
+ // channel has failed because the hardware clocks have stopped. Also, since
+ // it is a virtual register there really is no way to clear it. Fortunately
+ // we have the INTER_STATUS_REG that will tell us if there is an active
+ // attention. Note that we clear this register as part of the channel
+ // failure cleanup. So we can rely on this register to determine if there is
+ // a new channel failure.
+
+ SCAN_COMM_REGISTER_CLASS * fir = i_chip->getRegister("INTER_STATUS_REG");
if ( SUCCESS == fir->Read() )
{
- o_activeAttn = !fir->BitStringIsZero();
+ o_activeAttn = fir->IsBitSet(2); // Centaur checkstop bit.
}
return o_activeAttn;
OpenPOWER on IntegriCloud