diff options
| author | Caleb Palmer <cnpalmer@us.ibm.com> | 2019-07-17 15:20:07 -0500 |
|---|---|---|
| committer | Zane C Shelley <zshelle@us.ibm.com> | 2019-07-30 09:22:52 -0500 |
| commit | 37af28e0577faecd3c5f2d6b303e842687ea6d39 (patch) | |
| tree | 3e09b2659c7af9da7f56369985318f816063710c /src/usr/diag/prdf/common/framework | |
| parent | ddf90e53a96d0d99974d9520e113cc995738bc0f (diff) | |
| download | blackbird-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-x | src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C | 28 |
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 } |

