diff options
author | Corey Swenson <cswenson@us.ibm.com> | 2016-11-22 09:59:07 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-01-04 21:10:58 -0500 |
commit | b2e82859d8551ef4ee4c6e270794b2fd2d5ad3a4 (patch) | |
tree | e88615621e295ee80b830537936b6633d3ee2003 /src/usr/util | |
parent | 1c93d08e53678c1767a4b016dee32380aedd514a (diff) | |
download | talos-hostboot-b2e82859d8551ef4ee4c6e270794b2fd2d5ad3a4.tar.gz talos-hostboot-b2e82859d8551ef4ee4c6e270794b2fd2d5ad3a4.zip |
Start PM Complex during IPL for OPAL
- load/start PM complex in istep21
- make some rt_pm functions common
- load/start PM by default in HB standalone
- load OCC image into PNOR
- fix bug in UtilLidMgr
- add patch for p9n.act bug
Change-Id: I6c41934cf1614018da7dcad67573c3edc2d081b6
RTC:159931
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/32918
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/util')
-rw-r--r-- | src/usr/util/test/testlidmgr.H | 2 | ||||
-rw-r--r-- | src/usr/util/utillidmgr.C | 64 | ||||
-rw-r--r-- | src/usr/util/utillidpnor.H | 8 |
3 files changed, 38 insertions, 36 deletions
diff --git a/src/usr/util/test/testlidmgr.H b/src/usr/util/test/testlidmgr.H index 37cc3d7b9..e9c3b4cf3 100644 --- a/src/usr/util/test/testlidmgr.H +++ b/src/usr/util/test/testlidmgr.H @@ -77,7 +77,7 @@ public: } PNOR::SectionInfo_t l_lidPnorInfo; - l_errl = PNOR::getSectionInfo(PNOR::TEST, l_lidPnorInfo); + l_errl = PNOR::getSectionInfo(PNOR::TESTRO, l_lidPnorInfo); if(l_errl) { errlCommit(l_errl,UTIL_COMP_ID); diff --git a/src/usr/util/utillidmgr.C b/src/usr/util/utillidmgr.C index 8d081bb9f..4a358b3b1 100644 --- a/src/usr/util/utillidmgr.C +++ b/src/usr/util/utillidmgr.C @@ -43,8 +43,8 @@ mutex_t UtilLidMgr::cv_mutex = MUTEX_INITIALIZER; UtilLidMgr::UtilLidMgr(uint32_t i_lidId) : iv_needUnlock(false) ,iv_queueRegistered(false) -,iv_HbMsgQ(NULL) -,iv_pLidImage(NULL) +,iv_HbMsgQ(nullptr) +,iv_pLidImage(nullptr) ,iv_lidImageSize(0) ,iv_lidSize(0) { @@ -56,7 +56,7 @@ UtilLidMgr::UtilLidMgr(uint32_t i_lidId) /////////////////////////////////////////////////////////// UtilLidMgr::~UtilLidMgr() { - errlHndl_t l_err = NULL; + errlHndl_t l_err = nullptr; l_err = cleanup(); if(l_err) @@ -70,7 +70,7 @@ UtilLidMgr::~UtilLidMgr() /////////////////////////////////////////////////////////// errlHndl_t UtilLidMgr::getLidSize(size_t& o_lidSize) { - errlHndl_t errl = NULL; + errlHndl_t errl = nullptr; o_lidSize = 0; bool img_in_pnor = false; do{ @@ -141,7 +141,7 @@ errlHndl_t UtilLidMgr::getLidSize(size_t& o_lidSize) HWAS::SRCI_PRIORITY_MED); // for a syncronous message we need to free the message msg_free( l_pMsg ); - l_pMsg = NULL; + l_pMsg = nullptr; break; } @@ -152,7 +152,7 @@ errlHndl_t UtilLidMgr::getLidSize(size_t& o_lidSize) // for a syncronous message we need to free the message msg_free( l_pMsg ); - l_pMsg = NULL; + l_pMsg = nullptr; } }while(0); @@ -164,8 +164,8 @@ errlHndl_t UtilLidMgr::getLidSize(size_t& o_lidSize) /////////////////////////////////////////////////////////// errlHndl_t UtilLidMgr::getLidSizePnor(size_t& o_lidSize, bool& o_imgInPnor) { - errlHndl_t errl = NULL; - const char * lidAddr = NULL; + errlHndl_t errl = nullptr; + const char * lidAddr = nullptr; o_lidSize = 0; o_imgInPnor = false; @@ -184,7 +184,7 @@ errlHndl_t UtilLidMgr::getLidSizePnor(size_t& o_lidSize, bool& o_imgInPnor) { //Lid not in extended image delete errl; - errl = NULL; + errl = nullptr; break; } @@ -216,8 +216,8 @@ errlHndl_t UtilLidMgr::getLidPnor(void* i_dest, size_t i_destSize, bool& o_imgInPnor) { - errlHndl_t errl = NULL; - const char * lidAddr = NULL; + errlHndl_t errl = nullptr; + const char * lidAddr = nullptr; size_t lidSize = 0; o_imgInPnor = false; //assume not found to start. @@ -240,7 +240,7 @@ errlHndl_t UtilLidMgr::getLidPnor(void* i_dest, { //Lid not in extended image delete errl; - errl = NULL; + errl = nullptr; break; } } @@ -327,13 +327,13 @@ errlHndl_t UtilLidMgr::getLidPnor(void* i_dest, /////////////////////////////////////////////////////////// errlHndl_t UtilLidMgr::getLid(void* i_dest, size_t i_destSize) { - errlHndl_t errl = NULL; + errlHndl_t errl = nullptr; uint32_t curLid = 0; uint16_t pageNumber = 0; size_t dataSize = 0; size_t transferred_data = 0; - uint8_t* dataPtr = NULL; - void* copyOffset = NULL; + uint8_t* dataPtr = nullptr; + void* copyOffset = nullptr; bool img_in_pnor = false; do{ @@ -406,7 +406,7 @@ errlHndl_t UtilLidMgr::getLid(void* i_dest, size_t i_destSize) // for a syncronous message we need to free the message msg_free( l_pMsg ); - l_pMsg = NULL; + l_pMsg = nullptr; break; } @@ -427,7 +427,7 @@ errlHndl_t UtilLidMgr::getLid(void* i_dest, size_t i_destSize) dataPtr = reinterpret_cast<uint8_t *> (l_pMsg->extra_data); if((curLid != iv_lidId) || - (NULL == dataPtr)) + (nullptr == dataPtr)) { UTIL_FT(ERR_MRK"getLid: rc 0x%x received from FSP for Sync to HB request", return_code ); @@ -447,7 +447,7 @@ errlHndl_t UtilLidMgr::getLid(void* i_dest, size_t i_destSize) TWO_UINT32_TO_UINT64(curLid, iv_lidId), TWO_UINT32_TO_UINT64( - NULL != dataPtr ? *(dataPtr) : 0, + nullptr != dataPtr?*(dataPtr):0, 0) ); @@ -455,7 +455,7 @@ errlHndl_t UtilLidMgr::getLid(void* i_dest, size_t i_destSize) HWAS::SRCI_PRIORITY_HIGH); free(l_pMsg->extra_data); - l_pMsg->extra_data = NULL; + l_pMsg->extra_data = nullptr; break; } @@ -488,7 +488,7 @@ errlHndl_t UtilLidMgr::getLid(void* i_dest, size_t i_destSize) ); free(l_pMsg->extra_data); - l_pMsg->extra_data = NULL; + l_pMsg->extra_data = nullptr; break; } @@ -500,7 +500,7 @@ errlHndl_t UtilLidMgr::getLid(void* i_dest, size_t i_destSize) transferred_data+=dataSize; free(l_pMsg->extra_data); - l_pMsg->extra_data = NULL; + l_pMsg->extra_data = nullptr; } //if UTILLID::PAGE_TO_HB @@ -549,9 +549,9 @@ errlHndl_t UtilLidMgr::getLid(void* i_dest, size_t i_destSize) errlHndl_t UtilLidMgr::getStoredLidImage(void*& o_pLidImage, size_t& o_lidImageSize) { - errlHndl_t errl = NULL; + errlHndl_t errl = nullptr; - if((iv_pLidImage != NULL) && (iv_lidImageSize != 0)) + if((iv_pLidImage != nullptr) && (iv_lidImageSize != 0)) { o_pLidImage = iv_pLidImage; o_lidImageSize = iv_lidImageSize; @@ -563,9 +563,9 @@ errlHndl_t UtilLidMgr::getStoredLidImage(void*& o_pLidImage, errl = getLidSize(iv_lidImageSize); } - if(errl != NULL) + if(errl == nullptr) { - if(iv_pLidImage != NULL) + if(iv_pLidImage != nullptr) { free(iv_pLidImage); } @@ -601,7 +601,7 @@ errlHndl_t UtilLidMgr::releaseLidImage(void) errlHndl_t UtilLidMgr::sendMboxMessage( MBOX_MSG_TYPE type, msg_t * i_msg ) { - errlHndl_t errl = NULL; + errlHndl_t errl = nullptr; UTIL_DT("type: 0x%04x", i_msg->type ); UTIL_DT("data0: 0x%016llx",i_msg->data[0] ); @@ -628,7 +628,7 @@ errlHndl_t UtilLidMgr::sendMboxMessage( MBOX_MSG_TYPE type, // if the send failed and the message is still valid, check // and free the extra data if it exists. - if( i_msg != NULL && i_msg->extra_data != NULL ) + if( i_msg != nullptr && i_msg->extra_data != nullptr ) { free( i_msg->extra_data ); } @@ -642,7 +642,7 @@ errlHndl_t UtilLidMgr::sendMboxMessage( MBOX_MSG_TYPE type, /////////////////////////////////////////////////////////// errlHndl_t UtilLidMgr::createMsgQueue() { - errlHndl_t errl = NULL; + errlHndl_t errl = nullptr; mutex_lock(&cv_mutex); iv_needUnlock = true; @@ -689,7 +689,7 @@ void UtilLidMgr::unregisterMsgQueue() /////////////////////////////////////////////////////////// errlHndl_t UtilLidMgr::cleanup() { - errlHndl_t l_err = NULL; + errlHndl_t l_err = nullptr; iv_lidSize = 0; @@ -737,10 +737,10 @@ errlHndl_t UtilLidMgr::cleanup() } } - if(iv_pLidImage != NULL) + if(iv_pLidImage != nullptr) { free(iv_pLidImage); - iv_pLidImage = NULL; + iv_pLidImage = nullptr; } iv_lidImageSize = 0; @@ -752,7 +752,7 @@ errlHndl_t UtilLidMgr::cleanup() /////////////////////////////////////////////////////////// errlHndl_t UtilLidMgr::setLidId(uint32_t i_lidId) { - errlHndl_t l_err = NULL; + errlHndl_t l_err = nullptr; //must call cleanup before updateLid l_err = cleanup(); diff --git a/src/usr/util/utillidpnor.H b/src/usr/util/utillidpnor.H index 91749caab..267703f81 100644 --- a/src/usr/util/utillidpnor.H +++ b/src/usr/util/utillidpnor.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2014 */ +/* Contributors Listed Below - COPYRIGHT 2014,2016 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -57,8 +57,10 @@ bool cmpLidToPnor (const std::pair<uint32_t, PNOR::SectionId> p1, const std::pair<uint32_t, PNOR::SectionId> lidToPnor[] = { - std::make_pair(Util::TEST_LIDID, PNOR::TEST), // TEST_LIDID = 0x00000111 - std::make_pair(Util::OCC_LIDID, PNOR::OCC) // OCC_LIDID = 0x81e00430 + std::make_pair(Util::TEST_LIDID, PNOR::TESTRO), // 0x00000111 + std::make_pair(Util::OCC_LIDID, PNOR::OCC), // 0x81e00430 + std::make_pair(Util::NIMBUS_HCODE_LIDID, PNOR::HCODE), // 0x81e00602 + std::make_pair(Util::CUMULUS_HCODE_LIDID, PNOR::HCODE) // 0x81e00603 }; // Size of lidToPnor[] |