From effa0e2c6eccb199caa6179a0618c75c6182aa4b Mon Sep 17 00:00:00 2001 From: Doug Gilbert Date: Fri, 15 Nov 2013 12:45:52 -0600 Subject: implement start_payload for multi-drawer RTC: 71994 Change-Id: I422f349d5588731a5e7cfc504d96e497958d6b95 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7426 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III --- src/usr/initservice/baseinitsvc/initservice.C | 27 +++++++++++++++++++-------- src/usr/initservice/baseinitsvc/initservice.H | 8 ++++++-- 2 files changed, 25 insertions(+), 10 deletions(-) (limited to 'src/usr/initservice') diff --git a/src/usr/initservice/baseinitsvc/initservice.C b/src/usr/initservice/baseinitsvc/initservice.C index 0d34a5abb..ece13d59a 100644 --- a/src/usr/initservice/baseinitsvc/initservice.C +++ b/src/usr/initservice/baseinitsvc/initservice.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2011,2013 */ +/* COPYRIGHT International Business Machines Corp. 2011,2014 */ /* */ /* p1 */ /* */ @@ -632,7 +632,8 @@ void doShutdown(uint64_t i_status, bool i_inBackground, uint64_t i_payload_base, uint64_t i_payload_entry, - uint64_t i_payload_data) + uint64_t i_payload_data, + uint64_t i_masterHBInstance) { class ShutdownExecute { @@ -640,11 +641,13 @@ void doShutdown(uint64_t i_status, ShutdownExecute(uint64_t i_status, uint64_t i_payload_base, uint64_t i_payload_entry, - uint64_t i_payload_data) + uint64_t i_payload_data, + uint64_t i_masterHBInstance) : status(i_status), payload_base(i_payload_base), payload_entry(i_payload_entry), - payload_data(i_payload_data) + payload_data(i_payload_data), + masterHBInstance(i_masterHBInstance) { } void execute() @@ -652,7 +655,8 @@ void doShutdown(uint64_t i_status, Singleton::instance().doShutdown(status, payload_base, payload_entry, - payload_data); + payload_data, + masterHBInstance); } void startThread() { @@ -664,6 +668,7 @@ void doShutdown(uint64_t i_status, uint64_t payload_base; uint64_t payload_entry; uint64_t payload_data; + uint64_t masterHBInstance; static void* run(void* _self) { @@ -679,7 +684,8 @@ void doShutdown(uint64_t i_status, }; ShutdownExecute* s = new ShutdownExecute(i_status, i_payload_base, - i_payload_entry, i_payload_data); + i_payload_entry, i_payload_data, + i_masterHBInstance); if (i_inBackground) { @@ -695,7 +701,8 @@ void doShutdown(uint64_t i_status, 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_payload_data, + uint64_t i_masterHBInstance) { int l_rc = 0; errlHndl_t l_err = NULL; @@ -757,7 +764,11 @@ void InitService::doShutdown(uint64_t i_status, l_rb_iter++; } - shutdown(i_status, i_payload_base, i_payload_entry, i_payload_data); + shutdown(i_status, + i_payload_base, + i_payload_entry, + i_payload_data, + i_masterHBInstance); } 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 26e620b95..cf4536a86 100644 --- a/src/usr/initservice/baseinitsvc/initservice.H +++ b/src/usr/initservice/baseinitsvc/initservice.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2011,2013 */ +/* COPYRIGHT International Business Machines Corp. 2011,2014 */ /* */ /* p1 */ /* */ @@ -209,6 +209,9 @@ public: * payload entry-point. * @param[in] i_payload_entry - HRMOR adjusted address of any payload data * placed in r3 + * @param[in] i_masterHBInstance - master hostboot instance number (node) + * Needed when starting payload on a + * multi-node system. * * @return Nothing * @note This calls registered services to notify them of shutdown and it @@ -217,7 +220,8 @@ public: void doShutdown ( uint64_t i_status, uint64_t i_payload_base = 0, uint64_t i_payload_entry = 0, - uint64_t i_payload_data = 0); + uint64_t i_payload_data = 0, + uint64_t i_masterHBInstance = 0xffffffffffffffffull); protected: -- cgit v1.2.1