diff options
| author | Matt Derksen <mderkse1@us.ibm.com> | 2019-01-15 10:48:31 -0600 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-01-24 13:12:08 -0600 |
| commit | cb35695328fbc1cb6764f048a8dbb3e81faba1e9 (patch) | |
| tree | ea9cce42514a9f000c687545ab5f417842df04af /src/usr/isteps/pm/runtime | |
| parent | 9de9d8f7c5b5c73247dc69925a594fcd07ce060c (diff) | |
| download | blackbird-hostboot-cb35695328fbc1cb6764f048a8dbb3e81faba1e9.tar.gz blackbird-hostboot-cb35695328fbc1cb6764f048a8dbb3e81faba1e9.zip | |
Inform PHYP of NVDIMM protection by OCC
The OCC is responsible for detecting the EPOW signal
and triggering the save operation on the NVDIMM.
Therefore, if the OCC is not running we are unprotected
from a poweroff event. PHYP needs to inform the LPARs
using the NV (non-volatile) memory of this state so they
can behave accordingly.
HBRT is responsible for telling PHYP when we get into this state.
There are two ways we can detect this state:
a) HBRT explicitly puts the PM complex into reset
b) PRD detects a specific FIR bit
The message should include this data:
- what state we are in (protected or unprotected)
- which processor is affected
Work for this story will include:
- Definition of the new message
- Creating a utility function to send the message
- Calling utility function to send 'unprotected' message
inside of all pm reset paths at runtime
Change-Id: Ib015d001d47883a247faedabedb0705ba0f1b215
RTC:201181
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/68870
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
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>
Reviewed-by: TSUNG K. YEUNG <tyeung@us.ibm.com>
Reviewed-by: Roland Veloz <rveloz@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/isteps/pm/runtime')
| -rw-r--r-- | src/usr/isteps/pm/runtime/rt_pm.C | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/src/usr/isteps/pm/runtime/rt_pm.C b/src/usr/isteps/pm/runtime/rt_pm.C index 3e5ab8c10..9397d0e83 100644 --- a/src/usr/isteps/pm/runtime/rt_pm.C +++ b/src/usr/isteps/pm/runtime/rt_pm.C @@ -40,7 +40,6 @@ #include <runtime/rt_targeting.H> #include <runtime/runtime_reasoncodes.H> - #include <initservice/isteps_trace.H> // targeting support @@ -262,44 +261,6 @@ namespace RTPM break; } -#ifdef CONFIG_NVDIMM - //@TODO RTC 199645 - additional delay needed to ensure OCC is - // full functional - - // Only run this if PM complex started successfully - // as EPOW save trigger is done by the OCC - TARGETING::TargetHandleList l_dimmTargetList; - getChildAffinityTargets( l_dimmTargetList, proc_target, CLASS_NA, TYPE_DIMM ); - - for (auto const l_dimm : l_dimmTargetList) - { - if (TARGETING::isNVDIMM(l_dimm)) - { - // skip if the nvdimm is in error state - if (NVDIMM::nvdimmInErrorState(l_dimm)) - { - continue; - } - - l_err = NVDIMM::nvdimmArmResetN(l_dimm); - // If we run into any error here we will just - // commit the error log and move on. Let the - // system continue to boot and let the user - // salvage the data - if (l_err) - { - NVDIMM::nvdimmSetStatusFlag(l_dimm, NVDIMM::NSTD_ERR_NOBKUP); - // Committing the error as we don't want the this to interrupt - // the boot. This will notifiy the user that action is needed - // on this module - l_err->setSev(ERRL_SEV_INFORMATIONAL); - l_err->collectTrace(NVDIMM_COMP_NAME,1024); - errlCommit( l_err, NVDIMM_COMP_ID ); - continue; - } - } - } -#endif } while(0); if ( l_err ) @@ -599,4 +560,3 @@ namespace RTPM registerPm g_registerPm; }; - |

