summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2013-08-23 13:34:00 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-08-23 14:44:31 -0500
commit649c8d93096d97a858312c3a3b0077213f2ff6d2 (patch)
treeca3e0c9b3ffcb077e37b1f6e387903571c589f9c
parent308db00a89c9c18c1c5e346f171f36ec34705f31 (diff)
downloadtalos-hostboot-649c8d93096d97a858312c3a3b0077213f2ff6d2.tar.gz
talos-hostboot-649c8d93096d97a858312c3a3b0077213f2ff6d2.zip
PRD: Disable VPD screening in RestoreDramRepairs()
The screening will now be done in the HW procedure. Change-Id: Ic3693b626af91a5df9f80eda7f4c0891a5e56bbb CQ: SW220899 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/5899 Reviewed-by: BENJAMIN J. WEISENBECK <bweisenb@us.ibm.com> Reviewed-by: Christopher T. Phan <cphan@us.ibm.com> Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-rw-r--r--src/usr/diag/prdf/plat/pegasus/prdfDramRepairs.C48
1 files changed, 5 insertions, 43 deletions
diff --git a/src/usr/diag/prdf/plat/pegasus/prdfDramRepairs.C b/src/usr/diag/prdf/plat/pegasus/prdfDramRepairs.C
index 2f2d88ea5..518a965da 100644
--- a/src/usr/diag/prdf/plat/pegasus/prdfDramRepairs.C
+++ b/src/usr/diag/prdf/plat/pegasus/prdfDramRepairs.C
@@ -262,6 +262,11 @@ bool screenBadDqs( TargetHandle_t i_mba )
CenRank rank ( r );
CenDqBitmap bitmap;
+ // The HW procedure to read the bad DQ attribute will callout the DIMM
+ // if it has DRAM Repairs VPD and the DISABLE_DRAM_REPAIRS MNFG policy
+ // flag is set. PRD will simply need to iterate through all the ranks
+ // to ensure all DIMMs are screen and the procedure will do the rest.
+
if ( SUCCESS != getBadDqBitmap(i_mba, rank, bitmap, true) )
{
PRDF_ERR( PRDF_FUNC"getBadDqBitmap() failed: MBA=0x%08x rank=%d",
@@ -269,49 +274,6 @@ bool screenBadDqs( TargetHandle_t i_mba )
analysisErrors = true;
continue; // skip this rank
}
-
- for ( uint32_t p = 0; p < PORT_SLCT_PER_MBA; p++ )
- {
- bool badDqs = false;
- if ( SUCCESS != bitmap.badDqs(p, badDqs) )
- {
- PRDF_ERR( PRDF_FUNC"badDqs() failed: MBA=0x%08x rank=%d "
- "port=%d", getHuid(i_mba), rank.flatten(), p );
- analysisErrors = true;
- continue; // skip this DIMM
- }
-
- if ( !badDqs )
- {
- continue; // nothing to do, skip this DIMM
- }
-
- TargetHandleList list = CalloutUtil::getConnectedDimms( i_mba,
- rank, p );
- if ( 0 == list.size() )
- {
- PRDF_ERR( PRDF_FUNC"bad bits present but no connected DIMM: "
- "MBA=0x%08x rank=%d port=%d", getHuid(i_mba),
- rank.flatten(), p );
- analysisErrors = true;
- continue; // skip this DIMM
- }
-
- for ( TargetHandleList::iterator i = list.begin();
- i < list.end(); i++ )
- {
- if ( NULL == errl )
- {
- errl = createErrl( PRDF_DETECTED_FAIL_HARDWARE, i_mba,
- PRDFSIG_RdrScreenBadDqs );
- }
-
- o_calloutMade = true;
- errl->addHwCallout( *i, SRCI_PRIORITY_HIGH,
- HWAS::DELAYED_DECONFIG,
- HWAS::GARD_Predictive );
- }
- }
}
// Commit the error log, if needed.
OpenPOWER on IntegriCloud