summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/initservice/istepdispatcher/istepdispatcher.C21
-rw-r--r--src/usr/initservice/istepdispatcher/istepdispatcher.H12
-rw-r--r--src/usr/ipmi/ipmisensor.C5
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;
OpenPOWER on IntegriCloud