diff options
author | Tsung Yeung <tyeung@us.ibm.com> | 2018-12-20 10:39:39 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-02-12 10:50:42 -0600 |
commit | b2027cd8b704587be6ce4dd14327e6730f9d519b (patch) | |
tree | bf1b0206440c5105e46db51bb1a837ac71290ce9 /src/usr/isteps/istep13 | |
parent | 95bbfc78a463c06cd06204ee8cb1b904ec864565 (diff) | |
download | talos-hostboot-b2027cd8b704587be6ce4dd14327e6730f9d519b.tar.gz talos-hostboot-b2027cd8b704587be6ce4dd14327e6730f9d519b.zip |
Disable NVDIMM Trigger Before Draminit and Deassert DDR_RESETn During MPIPL
- Per the JEDEC spec, DDR_RESETn is masked from the DRAM when the NVDIMM
is armed. This could cause the training to fail if the trigger is not
disabled before training. Two scenarios where this can happen are warm
reboot and cold boot before the backup power module can deplete the
charge
- Deassert DDR_RESETn in MPIPL before triggering the restore.
- Fix the config flag to enable NVDIMM code
Change-Id: I9d25c2f653fc54d379f0dbab49218f5b59a407a0
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70035
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-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>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/isteps/istep13')
-rw-r--r-- | src/usr/isteps/istep13/call_mss_draminit.C | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/usr/isteps/istep13/call_mss_draminit.C b/src/usr/isteps/istep13/call_mss_draminit.C index 00d69f5f3..915bc992b 100644 --- a/src/usr/isteps/istep13/call_mss_draminit.C +++ b/src/usr/isteps/istep13/call_mss_draminit.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -50,6 +50,11 @@ #include <p9_mss_draminit.H> #include <p9c_mss_draminit.H> +#ifdef CONFIG_NVDIMM +// NVDIMM support +#include <isteps/nvdimm/nvdimm.H> +#endif + using namespace ERRORLOG; using namespace ISTEP; using namespace ISTEP_ERROR; @@ -161,6 +166,19 @@ void* call_mss_draminit (void *io_pArgs) fapi2::Target<fapi2::TARGET_TYPE_MCBIST> l_fapi_mcbist_target (l_mcbist_target); + // Initialize the NVDIMMs before hitting draminit +#ifdef CONFIG_NVDIMM + TARGETING::TargetHandleList l_dimmTargetList; + getChildAffinityTargets(l_dimmTargetList, l_mcbist_target, CLASS_NA, TYPE_DIMM); + + for (const auto & l_dimm : l_dimmTargetList) + { + if (isNVDIMM(l_dimm)) + { + NVDIMM::nvdimm_init(l_dimm); + } + } +#endif FAPI_INVOKE_HWP(l_err, p9_mss_draminit, l_fapi_mcbist_target); if (l_err) |