summaryrefslogtreecommitdiffstats
path: root/src/usr/initservice
diff options
context:
space:
mode:
authorBill Schwartz <whs@us.ibm.com>2014-03-26 08:34:46 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-04-03 17:11:14 -0500
commit6f1b3ada3cf827e7e16b4187f82fed1fb89a4272 (patch)
treea56051f834fe75e4a6dce2b57e9916b282e7ebd7 /src/usr/initservice
parent31998dac459abd6e49857697b07cbce8af43cadf (diff)
downloadtalos-hostboot-6f1b3ada3cf827e7e16b4187f82fed1fb89a4272.tar.gz
talos-hostboot-6f1b3ada3cf827e7e16b4187f82fed1fb89a4272.zip
Hostboot must trigger non MS (non MPIPL) if deconfig is detected during MPIPL
Do not enter the reconfig loop during a MPIPL Change-Id: Id99f4d8ccf2ebed816dfcffea4c7e889d538c2cc Backport: release-fips810 CQ: SW252376 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/9892 Tested-by: Jenkins Server Reviewed-by: Brian H. Horton <brianh@linux.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
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