diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2018-09-27 13:16:10 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2018-10-01 14:59:33 -0500 |
commit | aac8421a2554ee5a82b56c69c4d92d77d546a7c0 (patch) | |
tree | 62951718e3abfbc283e58469aba9f13145b6e7a7 /src/usr/diag/prdf | |
parent | c33d5206a1af0881bc2f9ff21eed29822b03f8b4 (diff) | |
download | talos-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-x | src/usr/diag/prdf/common/plat/mem/prdfMemUtils.C | 12 |
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; |