summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2014-11-03 14:04:14 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-11-12 17:07:04 -0600
commit71a92d99bc32fe35a5b87cf321c0e4cf5e8f6e9c (patch)
tree6af83db2e5bee7bfe3995205943a91607983779e /src/usr
parent6ae96c32de5550194aaa721ba1a5d875ccf86acd (diff)
downloadtalos-hostboot-71a92d99bc32fe35a5b87cf321c0e4cf5e8f6e9c.tar.gz
talos-hostboot-71a92d99bc32fe35a5b87cf321c0e4cf5e8f6e9c.zip
PRD: HW workaround for MBRCER register
Change-Id: I06cff636abe7af5caf7eb83bf14bcb15ec110236 CQ: SW284716 Backport: release-fips811 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/14304 Tested-by: Jenkins Server Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com> Reviewed-by: Christopher T. Phan <cphan@us.ibm.com> Reviewed-by: Prem Shanker Jha <premjha2@in.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-by: Zane Shelley <zshelle@us.ibm.com> Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/14356
Diffstat (limited to 'src/usr')
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C
index 070a0d40b..750803d0b 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMembuf.C
@@ -716,12 +716,14 @@ int32_t AnalyzeFetchRcePue( ExtensibleChip * i_membChip,
CenMbaDataBundle * mbadb = getMbaDataBundle( mbaChip );
- CenAddr addr;
- if ( i_isRceError )
- l_rc = getCenReadAddr( i_membChip, i_mbaPos, READ_RCE_ADDR, addr );
- else
- l_rc = getCenReadAddr( i_membChip, i_mbaPos, READ_UE_ADDR, addr );
+ // WORKAROUND: Since an RCE starts as a UE, it's address is trapped in
+ // MBUER (note: UE fir bit not set at this point). But since multiple
+ // addresses are retried (not just the failing address), MBRCER will
+ // contain the last address retried, and not necessarily the address
+ // that started out with the UE.
+ CenAddr addr;
+ l_rc = getCenReadAddr( i_membChip, i_mbaPos, READ_UE_ADDR, addr );
if ( SUCCESS != l_rc )
{
PRDF_ERR( PRDF_FUNC"getCenReadAddr() failed" );
OpenPOWER on IntegriCloud