summaryrefslogtreecommitdiffstats
path: root/src/usr/initservice/istepdispatcher
diff options
context:
space:
mode:
authorDean Sanner <dsanner@us.ibm.com>2017-10-09 06:20:29 -0500
committerChristian R. Geddes <crgeddes@us.ibm.com>2017-11-06 11:20:30 -0500
commit97f6525326d7ad9fa099be2b503a971c9325f503 (patch)
treeca00507985ae3805e22b672c82c6f94bbca183c1 /src/usr/initservice/istepdispatcher
parentcb260675de9f4f9025e0fc99687f6776e5f1bbac (diff)
downloadtalos-hostboot-97f6525326d7ad9fa099be2b503a971c9325f503.tar.gz
talos-hostboot-97f6525326d7ad9fa099be2b503a971c9325f503.zip
Control Host reboots for manufacturing
In a manufacturing environment it is desired to reboot once (and only once) to get the FIRDATA analysis on checkstop. This commit adds functionality to control the auto reboot policy on the BMC. It then "remembers" the state using the HB VOLATILE PNOR partition to enable reboots when in MFG mode. Note that when in this mode, any reboot (even from host) will terminate the boot. Change-Id: If5ce133b59e10c659d7024d1ae08a40988e35190 RTC:180772 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/48116 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: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Dean Sanner <dsanner@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/usr/initservice/istepdispatcher')
-rw-r--r--src/usr/initservice/istepdispatcher/istepdispatcher.C18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C
index fd3165b80..d11067734 100644
--- a/src/usr/initservice/istepdispatcher/istepdispatcher.C
+++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C
@@ -743,6 +743,24 @@ errlHndl_t IStepDispatcher::executeAllISteps()
// Stop the IPL
stop();
#else
+ //Disable reboots so system really halts
+ SENSOR::RebootControlSensor l_rbotCtl;
+ err_ipmi = l_rbotCtl.setRebootControl(
+ SENSOR::RebootControlSensor::autoRebootSetting::DISABLE_REBOOTS
+ );
+
+ if(err_ipmi)
+ {
+ #ifdef CONFIG_CONSOLE
+ CONSOLE::displayf(NULL, "Failed to disable BMC auto reboots....");
+ CONSOLE::flush();
+ #endif
+ TRACFCOMP(g_trac_initsvc,
+ "Failed to disable BMC auto reboots....");
+ err_ipmi->collectTrace("INITSVC");
+ errlCommit(err_ipmi, INITSVC_COMP_ID );
+ }
+
// Shutdown with a TI
doShutdown( SHUTDOWN_MFG_TERM );
#endif
OpenPOWER on IntegriCloud