summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2018-10-26 09:17:36 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-10-31 22:20:07 -0500
commit07f679f36f4c59e217abc620bf266605431e4c26 (patch)
treefff952013fe4554b24e3f8728ed54699648e2609 /src/usr/isteps
parent9c247751560ad04601cb7743b7ee63fbbc49dddb (diff)
downloadtalos-hostboot-07f679f36f4c59e217abc620bf266605431e4c26.tar.gz
talos-hostboot-07f679f36f4c59e217abc620bf266605431e4c26.zip
Clear out FIR Init parameters after extra PM Resets
There are two cases where we do an extra PM reset during boot: - enabling OCC Xstop Handler - mpipl The ATTR_PM_FIRINIT_DONE_ONCE_FLAG value needs to get cleared out to force the later 'real' use of the PM complex is setup correctly. Change-Id: Ibbe8d65bd6668a88a0e933d1144cd2972f0f0340 CQ: SW449953 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/68051 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')
-rw-r--r--src/usr/isteps/istep15/host_build_stop_image.C2
-rw-r--r--src/usr/isteps/pm/occCheckstop.C7
-rw-r--r--src/usr/isteps/pm/pm_common.C4
3 files changed, 12 insertions, 1 deletions
diff --git a/src/usr/isteps/istep15/host_build_stop_image.C b/src/usr/isteps/istep15/host_build_stop_image.C
index ddd2d5953..36b8c2304 100644
--- a/src/usr/isteps/istep15/host_build_stop_image.C
+++ b/src/usr/isteps/istep15/host_build_stop_image.C
@@ -459,7 +459,7 @@ void* host_build_stop_image (void *io_pArgs)
if (l_sys->getAttr<TARGETING::ATTR_IS_MPIPL_HB>())
{
- l_errl = HBPM::resetPMAll();
+ l_errl = HBPM::resetPMAll(HBPM::RESET_AND_CLEAR_ATTRIBUTES);
if(l_errl)
{
//Break out of the do-while loop..
diff --git a/src/usr/isteps/pm/occCheckstop.C b/src/usr/isteps/pm/occCheckstop.C
index c42996728..44b7296f0 100644
--- a/src/usr/isteps/pm/occCheckstop.C
+++ b/src/usr/isteps/pm/occCheckstop.C
@@ -293,6 +293,13 @@ namespace HBOCC
break;
}
+ // Need to clear out some state variables that get messed up
+ // during the PM Reset, e.g. the FIR Init flags
+ l_errl = HBPM::resetPMAll(HBPM::CLEAR_ATTRIBUTES);
+ if( l_errl )
+ {
+ break;
+ }
} while(0);
diff --git a/src/usr/isteps/pm/pm_common.C b/src/usr/isteps/pm/pm_common.C
index 2c01cb907..3aef6a713 100644
--- a/src/usr/isteps/pm/pm_common.C
+++ b/src/usr/isteps/pm/pm_common.C
@@ -1151,7 +1151,11 @@ namespace HBPM
if( CLEAR_ATTRIBUTES & i_opt )
{
+ // Zero out the HOMER vars
(void) convertHomerPhysToVirt( l_procChip, 0 );
+
+ // Zero out the FIR save/restore
+ l_procChip->setAttr<ATTR_PM_FIRINIT_DONE_ONCE_FLAG>(0);
}
}
OpenPOWER on IntegriCloud