diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/usr/initservice/istepdispatcher/istepdispatcher.C | 34 | ||||
-rw-r--r-- | src/usr/ipmibase/ipmirp.C | 32 | ||||
-rw-r--r-- | src/usr/ipmibase/ipmiwatchdog.C (renamed from src/usr/ipmiext/ipmiwatchdog.C) | 4 | ||||
-rw-r--r-- | src/usr/ipmibase/makefile | 4 | ||||
-rw-r--r-- | src/usr/ipmiext/makefile | 3 |
5 files changed, 58 insertions, 19 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(); diff --git a/src/usr/ipmibase/ipmirp.C b/src/usr/ipmibase/ipmirp.C index 9a8f164cd..2def821bb 100644 --- a/src/usr/ipmibase/ipmirp.C +++ b/src/usr/ipmibase/ipmirp.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2018 */ +/* Contributors Listed Below - COPYRIGHT 2012,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -51,6 +51,11 @@ #include <errno.h> #include <console/consoleif.H> + +#ifdef CONFIG_BMC_IPMI +#include <ipmi/ipmiwatchdog.H> //IPMI watchdog timer +#endif + // Defined in ipmidd.C extern trace_desc_t * g_trac_ipmi; #define IPMI_TRAC(printf_string,args...) \ @@ -124,6 +129,31 @@ void IpmiRP::daemonProcess(errlHndl_t& o_errl) { task_create(&IpmiRP::attach, NULL); task_create(&IpmiRP::start, NULL); + +#ifdef CONFIG_BMC_IPMI + errlHndl_t err_ipmi = IPMIWATCHDOG::setWatchDogTimer( + IPMIWATCHDOG::DEFAULT_WATCHDOG_COUNTDOWN); + + if(err_ipmi) + { + TRACFCOMP(g_trac_ipmi, + "init: ERROR: Set IPMI watchdog Failed"); + err_ipmi->collectTrace("IPMI", 1024); + errlCommit(err_ipmi, IPMI_COMP_ID ); + + } + + // Start the watchdog + err_ipmi = IPMIWATCHDOG::resetWatchDogTimer(); + if(err_ipmi) + { + TRACFCOMP(g_trac_ipmi, + "init: ERROR: Starting IPMI watchdog Failed"); + err_ipmi->collectTrace("IPMI", 1024); + errlCommit(err_ipmi, IPMI_COMP_ID ); + } +#endif + } /** diff --git a/src/usr/ipmiext/ipmiwatchdog.C b/src/usr/ipmibase/ipmiwatchdog.C index 5f7b9bde0..c21322f6b 100644 --- a/src/usr/ipmiext/ipmiwatchdog.C +++ b/src/usr/ipmibase/ipmiwatchdog.C @@ -1,11 +1,11 @@ /* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ -/* $Source: src/usr/ipmiext/ipmiwatchdog.C $ */ +/* $Source: src/usr/ipmibase/ipmiwatchdog.C $ */ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2014,2018 */ +/* Contributors Listed Below - COPYRIGHT 2014,2019 */ /* [+] Google Inc. */ /* [+] International Business Machines Corp. */ /* */ diff --git a/src/usr/ipmibase/makefile b/src/usr/ipmibase/makefile index e08057254..c7bb6ead0 100644 --- a/src/usr/ipmibase/makefile +++ b/src/usr/ipmibase/makefile @@ -5,7 +5,8 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2011,2018 +# Contributors Listed Below - COPYRIGHT 2011,2019 +# [+] International Business Machines Corp. # # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -30,5 +31,6 @@ OBJS += ipmirp.o OBJS += $(if $(CONFIG_BMC_BT_LPC_IPMI),ipmidd.o) OBJS += ipmiconfig.o OBJS += ipmiselrecord.o +OBJS += ipmiwatchdog.o include ${ROOTPATH}/config.mk diff --git a/src/usr/ipmiext/makefile b/src/usr/ipmiext/makefile index e9aa66deb..414180c53 100644 --- a/src/usr/ipmiext/makefile +++ b/src/usr/ipmiext/makefile @@ -5,7 +5,7 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2011,2018 +# Contributors Listed Below - COPYRIGHT 2011,2019 # [+] International Business Machines Corp. # # @@ -29,7 +29,6 @@ MODULE = ipmiext include ipmi.mk OBJS += ipmifru.o -OBJS += ipmiwatchdog.o OBJS += ipmifruinv.o OBJS += ipmipowerstate.o OBJS += ipmichassiscontrol.o |