summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/framework
diff options
context:
space:
mode:
authorCaleb Palmer <cnpalmer@us.ibm.com>2019-07-17 15:20:07 -0500
committerZane C Shelley <zshelle@us.ibm.com>2019-07-30 09:22:52 -0500
commit37af28e0577faecd3c5f2d6b303e842687ea6d39 (patch)
tree3e09b2659c7af9da7f56369985318f816063710c /src/usr/diag/prdf/common/framework
parentddf90e53a96d0d99974d9520e113cc995738bc0f (diff)
downloadblackbird-hostboot-37af28e0577faecd3c5f2d6b303e842687ea6d39.tar.gz
blackbird-hostboot-37af28e0577faecd3c5f2d6b303e842687ea6d39.zip
PRD: NVDIMM avoid gard for general mem errors only for IPL
Change-Id: Iaa1c8b4e92377f2b6bf854f21ee334e915745ff5 CQ: SW470603 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/80608 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Brian J Stegmiller <bjs@us.ibm.com> Reviewed-by: Paul Greenwood <paul.greenwood@ibm.com> Reviewed-by: Zane C Shelley <zshelle@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/81062 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/common/framework')
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C28
1 files changed, 13 insertions, 15 deletions
diff --git a/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C b/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C
index 8ba990077..49ba0bf7e 100755
--- a/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C
+++ b/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C
@@ -181,6 +181,8 @@ void ServiceDataCollector::clearNvdimmMruListGard()
{
#define PRDF_FUNC "[ServiceDataCollector::clearNvdimmMruListGard] "
+ #ifdef CONFIG_NVDIMM
+ #ifdef __HOSTBOOT_MODULE
// Loop through the MRU list.
for ( auto & mru : xMruList )
{
@@ -188,33 +190,29 @@ void ServiceDataCollector::clearNvdimmMruListGard()
TargetHandle_t trgt = callout.getTarget();
if ( TYPE_DIMM == PlatServices::getTargetType(trgt) )
{
- // If the callout target is an NVDIMM, do not gard it and send a
- // message to PHYP/Hostboot that a save/restore may work.
+ // If the callout target is an NVDIMM send a message to
+ // PHYP/Hostboot that a save/restore may work, and if we are at
+ // IPL, clear Gard on the NVDIMM.
if ( isNVDIMM(trgt) )
{
- mru.gardState = NO_GARD;
-
- #ifdef __HOSTBOOT_MODULE
-
- #ifdef __HOSTBOOT_RUNTIME
- // Hostboot runtime, send the message to PHYP
- uint32_t l_rc = PlatServices::nvdimmNotifyPhypProtChange( trgt,
+ // Send the message to PHYP/Hostboot
+ uint32_t l_rc = PlatServices::nvdimmNotifyProtChange( trgt,
NVDIMM::NVDIMM_RISKY_HW_ERROR );
if ( SUCCESS != l_rc )
{
- PRDF_TRAC( PRDF_FUNC "nvdimmNotifyPhypProtChange(0x%08x) "
+ PRDF_TRAC( PRDF_FUNC "nvdimmNotifyProtChange(0x%08x) "
"failed.", PlatServices::getHuid(trgt) );
continue;
}
- #else
- // IPL, set the appropriate internal attribute in Hostboot
- trgt->setAttr<ATTR_NV_STATUS_FLAG>(0x40);
+ #ifndef __HOSTBOOT_RUNTIME
+ // IPL, clear Gard
+ mru.gardState = NO_GARD;
#endif
-
- #endif // __HOSTBOOT_MODULE
}
}
}
+ #endif // __HOSTBOOT_MODULE
+ #endif // CONFIG_NVDIMM
#undef PRDF_FUNC
}
OpenPOWER on IntegriCloud