diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2013-08-23 13:34:00 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-08-23 14:44:31 -0500 |
commit | 649c8d93096d97a858312c3a3b0077213f2ff6d2 (patch) | |
tree | ca3e0c9b3ffcb077e37b1f6e387903571c589f9c | |
parent | 308db00a89c9c18c1c5e346f171f36ec34705f31 (diff) | |
download | talos-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.C | 48 |
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. |