summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/plat/mem
diff options
context:
space:
mode:
authorCaleb Palmer <cnpalmer@us.ibm.com>2019-07-31 09:54:00 -0500
committerZane C Shelley <zshelle@us.ibm.com>2019-08-05 11:16:45 -0500
commit4ced775921eb599a0579e98c2f3f19ab08b53ed3 (patch)
tree32251f5c1744e0cb294dbcdbd24be91bac4c1c97 /src/usr/diag/prdf/plat/mem
parent9de71650fde36c28681150ed7bef8c986e2db1f1 (diff)
downloadtalos-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.C24
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;
OpenPOWER on IntegriCloud