diff options
author | Bill Schwartz <whs@us.ibm.com> | 2014-03-26 08:34:46 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-04-03 17:11:14 -0500 |
commit | 6f1b3ada3cf827e7e16b4187f82fed1fb89a4272 (patch) | |
tree | a56051f834fe75e4a6dce2b57e9916b282e7ebd7 /src | |
parent | 31998dac459abd6e49857697b07cbce8af43cadf (diff) | |
download | talos-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')
-rw-r--r-- | src/usr/initservice/istepdispatcher/istepdispatcher.C | 24 |
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, |