summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/initservice/baseinitsvc/initservice.C28
-rw-r--r--src/usr/initservice/baseinitsvc/initservice.H6
-rw-r--r--src/usr/sbeio/sbe_fifodd.C3
-rw-r--r--src/usr/sbeio/sbe_psudd.C3
4 files changed, 29 insertions, 11 deletions
diff --git a/src/usr/initservice/baseinitsvc/initservice.C b/src/usr/initservice/baseinitsvc/initservice.C
index c3512b080..49a5dccc0 100644
--- a/src/usr/initservice/baseinitsvc/initservice.C
+++ b/src/usr/initservice/baseinitsvc/initservice.C
@@ -657,7 +657,8 @@ void doShutdown(uint64_t i_status,
uint64_t i_payload_base,
uint64_t i_payload_entry,
uint64_t i_payload_data,
- uint64_t i_masterHBInstance)
+ uint64_t i_masterHBInstance,
+ uint32_t i_error_info)
{
class ShutdownExecute
{
@@ -666,12 +667,14 @@ void doShutdown(uint64_t i_status,
uint64_t i_payload_base,
uint64_t i_payload_entry,
uint64_t i_payload_data,
- uint64_t i_masterHBInstance)
+ uint64_t i_masterHBInstance,
+ uint32_t i_error_info)
: status(i_status),
payload_base(i_payload_base),
payload_entry(i_payload_entry),
payload_data(i_payload_data),
- masterHBInstance(i_masterHBInstance)
+ masterHBInstance(i_masterHBInstance),
+ error_info(i_error_info)
{ }
void execute()
@@ -680,7 +683,8 @@ void doShutdown(uint64_t i_status,
payload_base,
payload_entry,
payload_data,
- masterHBInstance);
+ masterHBInstance,
+ error_info);
}
void startThread()
{
@@ -693,6 +697,7 @@ void doShutdown(uint64_t i_status,
uint64_t payload_entry;
uint64_t payload_data;
uint64_t masterHBInstance;
+ uint32_t error_info;
static void* run(void* _self)
{
@@ -709,7 +714,7 @@ void doShutdown(uint64_t i_status,
ShutdownExecute* s = new ShutdownExecute(i_status, i_payload_base,
i_payload_entry, i_payload_data,
- i_masterHBInstance);
+ i_masterHBInstance, i_error_info);
if (i_inBackground)
{
@@ -744,7 +749,8 @@ void InitService::doShutdown(uint64_t i_status,
uint64_t i_payload_base,
uint64_t i_payload_entry,
uint64_t i_payload_data,
- uint64_t i_masterHBInstance)
+ uint64_t i_masterHBInstance,
+ uint32_t i_error_info)
{
int l_rc = 0;
errlHndl_t l_err = NULL;
@@ -871,9 +877,17 @@ void InitService::doShutdown(uint64_t i_status,
i_payload_base,
i_payload_entry,
i_payload_data,
- i_masterHBInstance);
+ i_masterHBInstance,
+ i_error_info);
}
+void doShutdownWithError ( uint64_t i_status, uint32_t i_error_info)
+{
+ INITSERVICE::doShutdown( i_status,
+ false,
+ 0, 0, 0, THIS_NODE_NO_PAYLOAD,
+ i_error_info);
+}
bool InitService::registerShutdownEvent(msg_q_t i_msgQ,
diff --git a/src/usr/initservice/baseinitsvc/initservice.H b/src/usr/initservice/baseinitsvc/initservice.H
index e4be26603..70b1f8427 100644
--- a/src/usr/initservice/baseinitsvc/initservice.H
+++ b/src/usr/initservice/baseinitsvc/initservice.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2015 */
+/* Contributors Listed Below - COPYRIGHT 2011,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -227,6 +227,7 @@ public:
* @param[in] i_masterHBInstance - master hostboot instance number (node)
* Needed when starting payload on a
* multi-node system.
+ * @param[in] i_error_info - Additional error data to be included in TI data
*
* @return Nothing
* @note This calls registered services to notify them of shutdown and it
@@ -236,7 +237,8 @@ public:
uint64_t i_payload_base = 0,
uint64_t i_payload_entry = 0,
uint64_t i_payload_data = 0,
- uint64_t i_masterHBInstance = 0xffffffffffffffffull);
+ uint64_t i_masterHBInstance = 0xffffffffffffffffull,
+ uint32_t i_error_info = 0);
protected:
diff --git a/src/usr/sbeio/sbe_fifodd.C b/src/usr/sbeio/sbe_fifodd.C
index 722457653..32f2326b8 100644
--- a/src/usr/sbeio/sbe_fifodd.C
+++ b/src/usr/sbeio/sbe_fifodd.C
@@ -149,7 +149,8 @@ errlHndl_t SbeFifo::performFifoChipOp(TARGETING::Target * i_target,
SBEIO_HWSV_COLLECT_SBE_RC,
orig_plid,
TWO_UINT32_TO_UINT64(orig_rc,orig_mod));
- INITSERVICE::doShutdown( SBEIO_HWSV_COLLECT_SBE_RC );
+ INITSERVICE::doShutdownWithError( SBEIO_HWSV_COLLECT_SBE_RC,
+ TARGETING::get_huid(i_target) );
}
SBE_TRACD(EXIT_MRK "performFifoChipOp");
diff --git a/src/usr/sbeio/sbe_psudd.C b/src/usr/sbeio/sbe_psudd.C
index 16695cc0a..90534deed 100644
--- a/src/usr/sbeio/sbe_psudd.C
+++ b/src/usr/sbeio/sbe_psudd.C
@@ -195,7 +195,8 @@ errlHndl_t SbePsu::performPsuChipOp(TARGETING::Target * i_target,
MAGIC_INST_GET_SBE_TRACES(
i_target->getAttr<TARGETING::ATTR_POSITION>(),
SBEIO_HWSV_COLLECT_SBE_RC);
- INITSERVICE::doShutdown( SBEIO_HWSV_COLLECT_SBE_RC );
+ INITSERVICE::doShutdownWithError( SBEIO_HWSV_COLLECT_SBE_RC,
+ TARGETING::get_huid(i_target) );
}
SBE_TRACD(EXIT_MRK "performPsuChipOp");
OpenPOWER on IntegriCloud