diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2017-06-20 11:40:49 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2017-06-22 10:21:56 -0400 |
commit | 5c7c9832bd41c86e9c5705947dad2d3604d5ebbb (patch) | |
tree | d6f1b21e234de6a715959be9d54b6243c5350c37 /src/usr/diag/mdia | |
parent | d1924a3c11bf3ed92bacd89c4932ecbd57ebb391 (diff) | |
download | talos-hostboot-5c7c9832bd41c86e9c5705947dad2d3604d5ebbb.tar.gz talos-hostboot-5c7c9832bd41c86e9c5705947dad2d3604d5ebbb.zip |
PRD: MNFG thresholding for RCD parity error reconfig loops
Change-Id: Ie0282529d66cbe4b3169ad7ee601dbd2cb49f779
CQ: SW392001
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42136
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Diffstat (limited to 'src/usr/diag/mdia')
-rw-r--r-- | src/usr/diag/mdia/mdia.C | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/usr/diag/mdia/mdia.C b/src/usr/diag/mdia/mdia.C index d136f6cee..c05e38a1e 100644 --- a/src/usr/diag/mdia/mdia.C +++ b/src/usr/diag/mdia/mdia.C @@ -117,20 +117,16 @@ errlHndl_t runStep(const TargetHandleList & i_targetList) doStepCleanup(globals); - if ( nullptr != top && - 0 != top->getAttr<ATTR_RCD_PARITY_RECONFIG_LOOP_COUNT>() ) + // If this step completes without the need for a reconfig due to an RCD + // parity error, clear all RCD parity error counters. + ATTR_RECONFIGURE_LOOP_type attr = top->getAttr<ATTR_RECONFIGURE_LOOP>(); + if ( 0 == (attr & RECONFIGURE_LOOP_RCD_PARITY_ERROR) ) { - // Reset the RCD parity error reconfig loop counter if this step - // completes without an RCD parity error. Note that PRD will only set - // the RCD parity error flag if there is an RCD parity error and the - // total count of reconfig loops is under threshold. At threshold, a - // part will be deconfigured, forcing a reconfig, but the RCD parity - // error flag will not be set to ensure this code is activated and the - // count it reset. - ATTR_RECONFIGURE_LOOP_type attr = top->getAttr<ATTR_RECONFIGURE_LOOP>(); - if ( 0 == (attr & RECONFIGURE_LOOP_RCD_PARITY_ERROR) ) + TargetHandleList trgtList; getAllChiplets( trgtList, TYPE_MCA ); + for ( auto & trgt : trgtList ) { - top->setAttr<ATTR_RCD_PARITY_RECONFIG_LOOP_COUNT>(0); + if ( 0 != trgt->getAttr<ATTR_RCD_PARITY_RECONFIG_LOOP_COUNT>() ) + trgt->setAttr<ATTR_RCD_PARITY_RECONFIG_LOOP_COUNT>(0); } } |