summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps/istep13
diff options
context:
space:
mode:
authorTsung Yeung <tyeung@us.ibm.com>2018-12-20 10:39:39 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-02-12 10:50:42 -0600
commitb2027cd8b704587be6ce4dd14327e6730f9d519b (patch)
treebf1b0206440c5105e46db51bb1a837ac71290ce9 /src/usr/isteps/istep13
parent95bbfc78a463c06cd06204ee8cb1b904ec864565 (diff)
downloadtalos-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.C20
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)
OpenPOWER on IntegriCloud