diff options
author | Corey Swenson <cswenson@us.ibm.com> | 2019-11-04 21:45:12 -0600 |
---|---|---|
committer | Daniel M Crowell <dcrowell@us.ibm.com> | 2019-11-19 23:31:41 -0600 |
commit | d432c4503559abd127ebd170891a50da3ce2683d (patch) | |
tree | 65fb2d08b89e496b5b0a182cd55309ed42e72f56 /src/usr/isteps/istep21/call_host_runtime_setup.C | |
parent | e3870cb85913e2a92843e157427f68ef86e566f8 (diff) | |
download | talos-hostboot-d432c4503559abd127ebd170891a50da3ce2683d.tar.gz talos-hostboot-d432c4503559abd127ebd170891a50da3ce2683d.zip |
Fix auto-arming NVDIMMs for ESS systems
ESS requires HB to arm the NVDIMMs during IPL
after PM complex is started. Requires moving
the nvdimmArm() and associated functions from
nvdimm_rt.C to nvdimm.C.
Change-Id: Ie7fd08b27ad7959b21086f0f291764c2156e5bd9
CQ:SW479909
CMVC-Prereq:1096403
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/86489
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
Reviewed-by: Roland Veloz <rveloz@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: Daniel M Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/isteps/istep21/call_host_runtime_setup.C')
-rw-r--r-- | src/usr/isteps/istep21/call_host_runtime_setup.C | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/usr/isteps/istep21/call_host_runtime_setup.C b/src/usr/isteps/istep21/call_host_runtime_setup.C index 55d46e1d3..bc6a9d69e 100644 --- a/src/usr/isteps/istep21/call_host_runtime_setup.C +++ b/src/usr/isteps/istep21/call_host_runtime_setup.C @@ -68,6 +68,7 @@ #ifdef CONFIG_NVDIMM #include "call_nvdimm_update.H" +#include <isteps/nvdimm/nvdimm.H> #endif using namespace ERRORLOG; @@ -736,6 +737,19 @@ void* call_host_runtime_setup (void *io_pArgs) errlCommit(l_err, ISTEP_COMP_ID); pmStartSuccess = false; } + else + { +#ifdef CONFIG_NVDIMM + // Arm the nvdimms + // Only get here if is_sapphire_load and PM started and have NVDIMMs + TARGETING::TargetHandleList l_nvdimmTargetList; + NVDIMM::nvdimm_getNvdimmList(l_nvdimmTargetList); + if (l_nvdimmTargetList.size() != 0) + { + NVDIMM::nvdimmArm(l_nvdimmTargetList); + } +#endif + } #ifdef CONFIG_HTMGT // Report PM status to HTMGT @@ -767,7 +781,7 @@ void* call_host_runtime_setup (void *io_pArgs) uint8_t l_skip_fir_attr_reset = 1; // Since we are not leaving the PM complex alive, we will // explicitly put it into reset and clean up any memory - l_err = HBPM::resetPMAll(HBPM::RESET_AND_CLEAR_ATTRIBUTES, + l_err = HBPM::resetPMAll(HBPM::RESET_AND_CLEAR_ATTRIBUTES, l_skip_fir_attr_reset); if (l_err) { @@ -846,7 +860,7 @@ void* call_host_runtime_setup (void *io_pArgs) break; } } - + // Update the MDRT Count and PDA Table Entries from Attribute TargetService& l_targetService = targetService(); Target* l_sys = nullptr; |