summaryrefslogtreecommitdiffstats
path: root/src/usr/util
diff options
context:
space:
mode:
authorCorey Swenson <cswenson@us.ibm.com>2016-11-22 09:59:07 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-01-04 21:10:58 -0500
commitb2e82859d8551ef4ee4c6e270794b2fd2d5ad3a4 (patch)
treee88615621e295ee80b830537936b6633d3ee2003 /src/usr/util
parent1c93d08e53678c1767a4b016dee32380aedd514a (diff)
downloadtalos-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.H2
-rw-r--r--src/usr/util/utillidmgr.C64
-rw-r--r--src/usr/util/utillidpnor.H8
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[]
OpenPOWER on IntegriCloud