diff options
Diffstat (limited to 'src/usr')
-rw-r--r-- | src/usr/initservice/istepdispatcher/istepdispatcher.C | 21 | ||||
-rw-r--r-- | src/usr/initservice/istepdispatcher/istepdispatcher.H | 12 | ||||
-rw-r--r-- | src/usr/ipmi/ipmisensor.C | 5 |
3 files changed, 27 insertions, 11 deletions
diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C index 722531b35..a46c671df 100644 --- a/src/usr/initservice/istepdispatcher/istepdispatcher.C +++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C @@ -68,6 +68,7 @@ #include <ipmi/ipmiwatchdog.H> //IPMI watchdog timer #include <ipmi/ipmipowerstate.H> //IPMI System ACPI Power State #include <config.h> +#include <ipmi/ipmisensor.H> namespace ISTEPS_TRACE { @@ -621,6 +622,24 @@ errlHndl_t IStepDispatcher::doIstep(uint32_t i_istep, istepPauseSet(i_istep, i_substep); } +#ifdef CONFIG_BMC_IPMI + + if(theStep->taskflags.fwprogtype != PHASE_NA) + { + SENSOR::FirmwareProgressSensor l_progressSensor; + errlHndl_t err_fwprog = l_progressSensor.setBootProgressPhase( + theStep->taskflags.fwprogtype); + + if(err_fwprog) + { + TRACFCOMP(g_trac_initsvc, + "init: ERROR: Update FW Progress Phase Failed"); + errlCommit(err_fwprog, INITSVC_COMP_ID); + } + } + +#endif + err = InitService::getTheInstance().executeFn(theStep, NULL); // flush contTrace immediately after each i_istep/substep returns @@ -1682,8 +1701,8 @@ errlHndl_t IStepDispatcher::sendProgressCode(bool i_needsLock) "init: ERROR: reset IPMI watchdog Failed"); err_ipmi->collectTrace("INITSVC", 1024); errlCommit(err_ipmi, INITSVC_COMP_ID ); - } + #endif msg_t * myMsg = msg_allocate(); diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.H b/src/usr/initservice/istepdispatcher/istepdispatcher.H index 918d9a46d..5d941963c 100644 --- a/src/usr/initservice/istepdispatcher/istepdispatcher.H +++ b/src/usr/initservice/istepdispatcher/istepdispatcher.H @@ -401,12 +401,12 @@ private: bool iv_progressThreadStarted; // Used in multiple threads, mutex protection needed - uint8_t iv_curIStep; // Current Step - uint8_t iv_curSubStep; // Current SubStep - msg_t* iv_pIstepMsg; // External Istep request message - timespec_t iv_lastProgressMsgTime; // Last time progress message sent - bool iv_shutdown; // Shutdown request has been received - // from the FSP + uint8_t iv_curIStep; // Current Step + uint8_t iv_curSubStep; // Current SubStep + msg_t* iv_pIstepMsg; // External Istep request message + timespec_t iv_lastProgressMsgTime; // Last time progress message sent + bool iv_shutdown; // Shutdown request has been received + // from the FSP bool iv_futureShutdown; uint8_t iv_istepToCompleteBeforeShutdown; uint8_t iv_substepToCompleteBeforeShutdown; diff --git a/src/usr/ipmi/ipmisensor.C b/src/usr/ipmi/ipmisensor.C index 4ee5bdc5d..c81c3871d 100644 --- a/src/usr/ipmi/ipmisensor.C +++ b/src/usr/ipmi/ipmisensor.C @@ -48,8 +48,6 @@ namespace SENSOR TARGETING::Target * i_target) :iv_name(i_name) ,iv_target(i_target) { - assert(i_target != NULL); - // allocate a new message structure to use with our sensors // this will be the payload for the IPMI send/sendrecv sensor message. iv_msg = new setSensorReadingRequest; @@ -485,12 +483,11 @@ namespace SENSOR }; - // // setBootProgressPhase - update the boot progress sensor of the BMC // errlHndl_t FirmwareProgressSensor::setBootProgressPhase( - firmwareProgressPhase phase ) + INITSERVICE::firmwareProgressPhase phase ) { // event data 2 holds the progress info iv_msg->iv_event_data[1] = phase; |