summaryrefslogtreecommitdiffstats
path: root/src/usr/util/runtime
diff options
context:
space:
mode:
authorMarty Gloff <mgloff@us.ibm.com>2016-06-01 15:38:15 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-07-03 22:41:46 -0400
commit0dffc041ec01993e9399aeb8b17c9784617102e1 (patch)
tree42121111c923d57118202f5dad537a4455c9e745 /src/usr/util/runtime
parent3abbc2756991593bee3e2ad88f36f9eb26e6bf00 (diff)
downloadtalos-hostboot-0dffc041ec01993e9399aeb8b17c9784617102e1.tar.gz
talos-hostboot-0dffc041ec01993e9399aeb8b17c9784617102e1.zip
PM Complex Implementation Deferred to Pass 2
Load a given LID only once from pnor/fsp. Make a publicly accessible version of convertHomerPhysToVert() for HTMGT to consume and have it handle the non-runtime case. Use constants defined by HWP or FAPI. Change-Id: I554d57a0b74ca674be9fa9a5b527f6bb53f9a4d6 RTC: 155384 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/25273 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/util/runtime')
-rw-r--r--src/usr/util/runtime/test/testlidmgr_rt.H26
-rw-r--r--src/usr/util/runtime/utillidmgr_rt.C31
2 files changed, 56 insertions, 1 deletions
diff --git a/src/usr/util/runtime/test/testlidmgr_rt.H b/src/usr/util/runtime/test/testlidmgr_rt.H
index d869e3c81..36eb8bc64 100644
--- a/src/usr/util/runtime/test/testlidmgr_rt.H
+++ b/src/usr/util/runtime/test/testlidmgr_rt.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2014,2015 */
+/* Contributors Listed Below - COPYRIGHT 2014,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -98,6 +98,30 @@ class LidMgrRtTest : public CxxTest::TestSuite
TS_FAIL("testLidInPnor: failed to get lid from PNOR");
}
delete[] l_ptr;
+
+ void* l_pLidImage = NULL;
+ size_t l_lidImageSize = 0;
+ l_errl = l_lidMgr.getStoredLidImage(l_pLidImage,
+ l_lidImageSize);
+ if (l_errl)
+ {
+ errlCommit(l_errl, UTIL_COMP_ID);
+ TS_FAIL("testLidInPnor: failed to store lid from PNOR");
+ }
+
+ if (l_lidImageSize != l_lidPnorInfo.size)
+ {
+ TS_FAIL("testLidInPnor: lidImageSize does not match pnor"
+ " TEST section size 0x%.8X != 0x%.8X",
+ l_lidImageSize, l_lidPnorInfo.size);
+ }
+
+ l_errl = l_lidMgr.releaseLidImage();
+ if(l_errl)
+ {
+ errlCommit(l_errl, UTIL_COMP_ID);
+ TS_FAIL("testLidInPnor: failed to release lid from PNOR");
+ }
}while(0);
}
};
diff --git a/src/usr/util/runtime/utillidmgr_rt.C b/src/usr/util/runtime/utillidmgr_rt.C
index c3dcb1ec8..710159990 100644
--- a/src/usr/util/runtime/utillidmgr_rt.C
+++ b/src/usr/util/runtime/utillidmgr_rt.C
@@ -83,6 +83,37 @@ errlHndl_t UtilLidMgr::getLid(void* i_dest, size_t i_destSize)
return l_err;
}
+errlHndl_t UtilLidMgr::getStoredLidImage(void*& o_pLidImage,
+ size_t& o_lidImageSize)
+{
+ errlHndl_t l_err = NULL;
+
+ if((NULL == iv_lidBuffer) || (0 == iv_lidSize))
+ {
+ l_err = loadLid();
+ }
+
+ if(l_err)
+ {
+ o_lidImageSize = 0;
+ o_pLidImage = NULL;
+ }
+ else
+ {
+ o_lidImageSize = iv_lidSize;
+ o_pLidImage = iv_lidBuffer;
+ }
+
+ return l_err;
+}
+
+errlHndl_t UtilLidMgr::releaseLidImage(void)
+{
+ errlHndl_t l_err = cleanup();
+
+ return l_err;
+}
+
errlHndl_t UtilLidMgr::loadLid()
{
if (NULL != iv_lidBuffer) return NULL;
OpenPOWER on IntegriCloud