diff options
author | Matthew Raybuck <matthew.raybuck@ibm.com> | 2019-02-20 08:32:06 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-02-26 13:06:29 -0600 |
commit | 02150d1b6c0d5108630ac4983165aacd54b2000f (patch) | |
tree | 8710753ec85ce60b369af9b2f108f7196ca0e3b3 /src/usr/initservice | |
parent | c8094ee98e6d3f5b52f7005ad4e256150570a094 (diff) | |
download | talos-hostboot-02150d1b6c0d5108630ac4983165aacd54b2000f.tar.gz talos-hostboot-02150d1b6c0d5108630ac4983165aacd54b2000f.zip |
Move watchdog timer to prevent timeout
The watchdog used to be set in istepdispatcher.C but due to various
changes to PNOR that would cause a watchdog timeout. This commit moves
the watchdog out of impiext code and into impibase which allows the
watchdog to be setup as soon as the ipmi resource provider comes up.
Then once the code reaches istepdispatcher the watchdog is adjusted as
needed.
Change-Id: Ia5f13800db22cd17b0feabc5257f8f6409f54376
CQ:SW453071
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/72269
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com>
Reviewed-by: Ilya Smirnov <ismirno@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: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/initservice')
-rw-r--r-- | src/usr/initservice/istepdispatcher/istepdispatcher.C | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C index b7336780d..6500d1013 100644 --- a/src/usr/initservice/istepdispatcher/istepdispatcher.C +++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2018 */ +/* Contributors Listed Below - COPYRIGHT 2011,2019 */ /* [+] Google Inc. */ /* [+] International Business Machines Corp. */ /* */ @@ -362,6 +362,26 @@ void IStepDispatcher::init(errlHndl_t &io_rtaskRetErrl) if(iv_istepMode) { + + +#ifdef CONFIG_BMC_IPMI + // Disable watchdog action to prevent the system from shutting down + errlHndl_t err_ipmi = IPMIWATCHDOG::setWatchDogTimer( + IPMIWATCHDOG::DEFAULT_WATCHDOG_COUNTDOWN, + static_cast<uint8_t> + (IPMIWATCHDOG::DO_NOT_STOP | + IPMIWATCHDOG::BIOS_FRB2), + IPMIWATCHDOG::NO_ACTIONS); // do nothing + if(err_ipmi) + { + TRACFCOMP(g_trac_initsvc, + "init: ERROR: Set IPMI watchdog Failed"); + err_ipmi->collectTrace("INITSVC", 1024); + errlCommit(err_ipmi, INITSVC_COMP_ID ); + + } + +#endif // In IStep mode (receive messages to run individual steps) // always listen to debug interface. If on FSP this allows // both HWSV, Cronus, and debug tools to control the IPL @@ -378,18 +398,6 @@ void IStepDispatcher::init(errlHndl_t &io_rtaskRetErrl) { #ifdef CONFIG_BMC_IPMI - //run the ipmi watchdog in non istep mode only - errlHndl_t err_ipmi = IPMIWATCHDOG::setWatchDogTimer( - IPMIWATCHDOG::DEFAULT_WATCHDOG_COUNTDOWN); - - if(err_ipmi) - { - TRACFCOMP(g_trac_initsvc, - "init: ERROR: Set IPMI watchdog Failed"); - err_ipmi->collectTrace("INITSVC", 1024); - errlCommit(err_ipmi, INITSVC_COMP_ID ); - - } // Start the watchdog err_ipmi = IPMIWATCHDOG::resetWatchDogTimer(); |