From 29cb1f68e34c3b6f1a4167f4ff49f021f587b8af Mon Sep 17 00:00:00 2001 From: Dan Crowell Date: Thu, 7 Sep 2017 10:08:03 -0500 Subject: Add terminate option for mfg stop on error case Adding a new config option HANG_ON_MFG_SRC_TERM that will affect how we handle the MFG_SRC_TERM flag. The default (and current) behavior is for Hostboot to put itself into a hang state in order to prevent a reboot from the BMC. The new option will allow us to terminate normally (with a TI) instead. Change-Id: I82a0062cf50e4161d0da811a823dd7664dc2a5de CQ: SW401335 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/45793 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Reviewed-by: Dean Sanner Tested-by: FSP CI Jenkins Reviewed-by: William G. Hoffa --- src/usr/initservice/istepdispatcher/HBconfig | 11 +++++++++++ src/usr/initservice/istepdispatcher/istepdispatcher.C | 6 ++++++ 2 files changed, 17 insertions(+) (limited to 'src/usr/initservice') diff --git a/src/usr/initservice/istepdispatcher/HBconfig b/src/usr/initservice/istepdispatcher/HBconfig index 2b0a07fd0..7987f8ef3 100644 --- a/src/usr/initservice/istepdispatcher/HBconfig +++ b/src/usr/initservice/istepdispatcher/HBconfig @@ -3,17 +3,28 @@ config CONSOLE_OUTPUT_PROGRESS depends on CONSOLE help Display boot progress to console. + config RECONFIG_LOOP_TESTS_ENABLE default y help Include functions for enabling reconfig loop testing. + config SIO_ISTEP_CONTROL default n depends on BMC_AST2400 help Allows istep control via SIO scratch registers. Typical usage is via mailbox (scom) scratch registers. + config ISTEP_LPC_PORT80_DEBUG default n help Writes ISTEP progress to LPC port 80h. + +config HANG_ON_MFG_SRC_TERM + default y + help + Controls the behavior when terminating due to a fail when + manufacturing stop-on-error mode is set. + y: Hostboot will put itself into an infinite loop + n: Hostboot will terminate (TI), relies on BMC to not reboot diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C index dec077b82..e12e762f6 100644 --- a/src/usr/initservice/istepdispatcher/istepdispatcher.C +++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C @@ -668,8 +668,14 @@ errlHndl_t IStepDispatcher::executeAllISteps() // Quiesce new isteps, including external requests (void)setStopIpl(); +#ifdef CONFIG_HANG_ON_MFG_SRC_TERM // Stop the IPL stop(); +#else + // Shutdown with a TI + doShutdown( SHUTDOWN_MFG_TERM ); +#endif + } #endif -- cgit v1.2.1