diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2016-11-04 13:06:40 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2016-11-10 11:13:20 -0500 |
commit | 912367aa899cbe1860fb8d9523590f2d4fc4dfa6 (patch) | |
tree | 57037dd82bd681e06461a9a8e8ae48563b190794 /src/usr/diag | |
parent | 6f748dedb37487fec125e21ce463958e9aef646c (diff) | |
download | talos-hostboot-912367aa899cbe1860fb8d9523590f2d4fc4dfa6.tar.gz talos-hostboot-912367aa899cbe1860fb8d9523590f2d4fc4dfa6.zip |
PRD: cleaned stop-on-error conditions for AUE/IAUE/IMPE/IUE
Change-Id: Ic4a71ba972c8ca5391d5ab6a58e4a43b504846cf
RTC: 164216
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/32312
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/32443
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag')
-rw-r--r-- | src/usr/diag/prdf/plat/mem/prdfMemScrubUtils.C | 13 | ||||
-rw-r--r-- | src/usr/diag/prdf/plat/prdfPlatServices.C | 4 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemScrubUtils.C b/src/usr/diag/prdf/plat/mem/prdfMemScrubUtils.C index ee3a4a010..b1843bc36 100644 --- a/src/usr/diag/prdf/plat/mem/prdfMemScrubUtils.C +++ b/src/usr/diag/prdf/plat/mem/prdfMemScrubUtils.C @@ -194,9 +194,16 @@ uint32_t clearEccFirs<TYPE_MCBIST>( ExtensibleChip * i_chip ) ExtensibleChip * mcaChip = getConnectedChild( i_chip, TYPE_MCA, p ); if ( nullptr == mcaChip ) continue; - // Clear MCAECCFIR[20:34,36:37,39] - o_rc = __clearFir<TYPE_MCA>( mcaChip, "MCAECCFIR_AND", - 0xfffff00012ffffffull ); + // Maintenance AUEs/IAUEs will be reported as system checkstops. + // Maintenance IMPEs will be reported as recoverable attentions at + // all times. Maintence IUEs will be reported as recoverable in the + // field (doesn't stop-on-error), however, we will want to stop the + // command in MNFG mode for more accuracy in the callout. So clear + // MCAECCFIR[20:32,34:35,38] always and MCAECCFIR[37] in MNFG + // mode only. + uint64_t mask = 0xfffff0004dffffffull; + if ( mfgMode() ) mask &= 0xfffffffffbffffffull; + o_rc = __clearFir<TYPE_MCA>( mcaChip, "MCAECCFIR_AND", mask ); if ( SUCCESS != o_rc ) break; } diff --git a/src/usr/diag/prdf/plat/prdfPlatServices.C b/src/usr/diag/prdf/plat/prdfPlatServices.C index 3bc2aef31..950184ae5 100644 --- a/src/usr/diag/prdf/plat/prdfPlatServices.C +++ b/src/usr/diag/prdf/plat/prdfPlatServices.C @@ -317,9 +317,11 @@ uint32_t startBgScrub<TYPE_MCA>( ExtensibleChip * i_mcaChip, .set_thresh_nce_hard(1) .set_pause_on_mpe(mss::ON) .set_pause_on_ue(mss::ON) - .set_pause_on_aue(mss::ON) .set_nce_hard_symbol_count_enable(mss::ON); + // In MNFG mode, stop on RCE_ETE to get an accurate callout for IUEs. + if ( mfgMode() ) stopCond.set_thresh_rce(1); + // Get the scrub speed. mss::mcbist::speed scrubSpeed = enableFastBgScrub() ? mss::mcbist::LUDICROUS : mss::mcbist::BG_SCRUB; |