summaryrefslogtreecommitdiffstats
path: root/src/usr/initservice
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/initservice')
-rw-r--r--src/usr/initservice/istepdispatcher/istepdispatcher.C24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C
index 77946e91f..0df0ac825 100644
--- a/src/usr/initservice/istepdispatcher/istepdispatcher.C
+++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C
@@ -281,7 +281,8 @@ errlHndl_t IStepDispatcher::executeAllISteps()
if (l_doReconfig)
{
// Something occurred that requires a reconfig loop
- TRACFCOMP(g_trac_initsvc, ERR_MRK"executeAllISteps: Reconfig required after IStep %d:%d",
+ TRACFCOMP(g_trac_initsvc, ERR_MRK"executeAllISteps:"
+ " Reconfig required after IStep %d:%d",
istep, substep);
// Find out if in manufacturing mode
@@ -292,16 +293,27 @@ errlHndl_t IStepDispatcher::executeAllISteps()
l_pTopLevel->getAttr<TARGETING::ATTR_MNFG_FLAGS>();
if (l_mnfgFlags & TARGETING::MNFG_FLAG_SRC_TERM)
{
- TRACFCOMP(g_trac_initsvc, ERR_MRK"executeAllISteps: In manufacturing mode");
+ TRACFCOMP(g_trac_initsvc, ERR_MRK"executeAllISteps:"
+ " In manufacturing mode");
l_manufacturingMode = true;
}
+ // Find out if in MPIPL mode
+ bool l_MPIPLMode = false;
+ if (l_pTopLevel->getAttr<TARGETING::ATTR_IS_MPIPL_HB>())
+ {
+ TRACFCOMP(g_trac_initsvc, ERR_MRK"executeAllISteps:"
+ " In MPIPL mode");
+ l_MPIPLMode = true;
+ }
+
uint8_t newIstep = 0;
uint8_t newSubstep = 0;
if ((checkReconfig(istep, substep, newIstep, newSubstep)) &&
(numReconfigs < MAX_NUM_RECONFIG_ATTEMPTS) &&
- (!l_manufacturingMode))
+ (!l_manufacturingMode) &&
+ (!l_MPIPLMode) )
{
// Within the Reconfig Loop, going to loop back
// first, check to make sure we still have a bootable system
@@ -403,9 +415,9 @@ errlHndl_t IStepDispatcher::executeAllISteps()
else
{
// Reconfig loop required, but the istep is either outside
- // of the reconfig loop or too many reconfigs have been
- // attempted or in manufacturing mode, return an error to
- // cause termination
+ // of the reconfig loop, too many reconfigs have been
+ // attempted, in manufacturing mode, or in MPIPL.
+ // Return an error to cause termination
if (!err)
{
err = failedDueToDeconfig(istep, substep,
OpenPOWER on IntegriCloud