diff options
author | William A. Kennington III <wak@google.com> | 2018-05-08 16:18:57 -0700 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-05-19 18:16:25 -0400 |
commit | 9b9f654f0f6d3c73cbd58c5ee371b7ca5601284c (patch) | |
tree | c7f56fe6c5d58bfeb5f012b655d053e78833fb3f | |
parent | 2f1a0ed58a1b03eb7b2d08f20f68b498c593358d (diff) | |
download | talos-hostboot-9b9f654f0f6d3c73cbd58c5ee371b7ca5601284c.tar.gz talos-hostboot-9b9f654f0f6d3c73cbd58c5ee371b7ca5601284c.zip |
istepdispatcher: Reset the watchog to enable it
Performing a watchdog set command alone is not enough to re-enable the
watchdog. In any instance where we want the watchdog to be running we
need to issue a reset immediately after the set action to guarantee it
was started.
Resolves #137
Signed-off-by: William A. Kennington III <wak@google.com>
Change-Id: I16b617cf26c9e6af8151ac415689a8c6956c6e11
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/58547
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Tested-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rw-r--r-- | src/usr/initservice/istepdispatcher/istepdispatcher.C | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C index 0bcd0410b..4b65fa661 100644 --- a/src/usr/initservice/istepdispatcher/istepdispatcher.C +++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C @@ -389,6 +389,17 @@ void IStepDispatcher::init(errlHndl_t &io_rtaskRetErrl) errlCommit(err_ipmi, INITSVC_COMP_ID ); } + + // Start the watchdog + err_ipmi = IPMIWATCHDOG::resetWatchDogTimer(); + if(err_ipmi) + { + TRACFCOMP(g_trac_initsvc, + "init: ERROR: Starting IPMI watchdog Failed"); + err_ipmi->collectTrace("INITSVC", 1024); + errlCommit(err_ipmi, INITSVC_COMP_ID ); + + } #endif // Non-IStep mode (run all isteps automatically) @@ -2946,6 +2957,17 @@ void IStepDispatcher::istepPauseSet(uint8_t i_step, uint8_t i_substep) errlCommit(err_ipmi, INITSVC_COMP_ID ); } + + // Start the watchdog timer + err_ipmi = IPMIWATCHDOG::resetWatchDogTimer(); + if(err_ipmi) + { + TRACFCOMP(g_trac_initsvc, + "init: ERROR: Start IPMI watchdog Failed"); + err_ipmi->collectTrace("INITSVC", 1024); + errlCommit(err_ipmi, INITSVC_COMP_ID ); + + } #endif } |