diff options
author | Caleb Palmer <cnpalmer@us.ibm.com> | 2019-07-31 09:54:00 -0500 |
---|---|---|
committer | Zane C Shelley <zshelle@us.ibm.com> | 2019-08-05 11:16:45 -0500 |
commit | 4ced775921eb599a0579e98c2f3f19ab08b53ed3 (patch) | |
tree | 32251f5c1744e0cb294dbcdbd24be91bac4c1c97 /src/usr/diag/prdf/plat/mem | |
parent | 9de71650fde36c28681150ed7bef8c986e2db1f1 (diff) | |
download | talos-hostboot-4ced775921eb599a0579e98c2f3f19ab08b53ed3.tar.gz talos-hostboot-4ced775921eb599a0579e98c2f3f19ab08b53ed3.zip |
PRD: NVDIMM RDR no gard only for all repairs used case
Change-Id: I30e4b6976e12a3b4c58a74ac2b669229d31e6ae1
CQ: SW471737
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/81446
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Brian J Stegmiller <bjs@us.ibm.com>
Reviewed-by: Benjamen G Tyner <ben.tyner@ibm.com>
Reviewed-by: Zane C Shelley <zshelle@us.ibm.com>
Squashed: I3bdb36ebf1cd148d891b8040b4b37d2664868e9d
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/81590
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/plat/mem')
-rw-r--r-- | src/usr/diag/prdf/plat/mem/prdfRestoreDramRepairs.C | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfRestoreDramRepairs.C b/src/usr/diag/prdf/plat/mem/prdfRestoreDramRepairs.C index 5afc48016..839b65084 100644 --- a/src/usr/diag/prdf/plat/mem/prdfRestoreDramRepairs.C +++ b/src/usr/diag/prdf/plat/mem/prdfRestoreDramRepairs.C @@ -99,7 +99,7 @@ void commitErrl( errlHndl_t i_errl, TargetHandle_t i_trgt ) template<TARGETING::TYPE T> void __calloutDimm( errlHndl_t & io_errl, TargetHandle_t i_portTrgt, - TargetHandle_t i_dimmTrgt ) + TargetHandle_t i_dimmTrgt, bool i_nvdimmNoGard = false ) { #define PRDF_FUNC "[RDR::__calloutDimm] " @@ -113,10 +113,10 @@ void __calloutDimm( errlHndl_t & io_errl, TargetHandle_t i_portTrgt, HWAS::GARD_ErrorType gardPolicy = HWAS::GARD_Predictive; #ifdef CONFIG_NVDIMM - // If the DIMM is an NVDIMM, change the gard and deconfig options to no - // gard/deconfig and call nvdimmNotifyProtChange to indicate a - // save/restore may work - if ( isNVDIMM(i_dimmTrgt) ) + // For the "RDR: All repairs used" case, If the DIMM is an NVDIMM, change + // the gard and deconfig options to no gard/deconfig and call + // nvdimmNotifyProtChange to indicate a save/restore may work. + if ( i_nvdimmNoGard ) { deconfigPolicy = HWAS::NO_DECONFIG; gardPolicy = HWAS::GARD_NULL; @@ -261,7 +261,12 @@ bool processRepairedRanks( TargetHandle_t i_trgt, uint8_t i_repairedRankMask ) // Callout all DIMMs in the map. for ( auto const & dimm : calloutList ) { - __calloutDimm<T>( errl, i_trgt, dimm.first ); + bool nvdimmNoGard = false; + #ifdef CONFIG_NVDIMM + if ( isNVDIMM(dimm.first) ) nvdimmNoGard = true; + #endif + + __calloutDimm<T>( errl, i_trgt, dimm.first, nvdimmNoGard ); } // Commit the error log, if needed. @@ -391,7 +396,12 @@ bool processRepairedRanks<TYPE_MBA>( TargetHandle_t i_trgt, // Callout all DIMMs in the map. for ( auto const & dimm : calloutList ) { - __calloutDimm<TYPE_MBA>( errl, i_trgt, dimm.first ); + bool nvdimmNoGard = false; + #ifdef CONFIG_NVDIMM + if ( isNVDIMM(dimm.first) ) nvdimmNoGard = true; + #endif + + __calloutDimm<TYPE_MBA>(errl, i_trgt, dimm.first, nvdimmNoGard); } o_calloutMade = true; |