diff options
author | Dean Sanner <dsanner@us.ibm.com> | 2017-10-09 06:20:29 -0500 |
---|---|---|
committer | Christian R. Geddes <crgeddes@us.ibm.com> | 2017-11-06 11:20:30 -0500 |
commit | 97f6525326d7ad9fa099be2b503a971c9325f503 (patch) | |
tree | ca00507985ae3805e22b672c82c6f94bbca183c1 /src/usr/initservice/istepdispatcher | |
parent | cb260675de9f4f9025e0fc99687f6776e5f1bbac (diff) | |
download | talos-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.C | 18 |
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 |