summaryrefslogtreecommitdiffstats
path: root/src/usr/testcore/rtloader/loader.H
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2014-01-14 18:58:57 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-02-06 17:40:11 -0600
commit6454fc5ee6f30a98202f1595c458f32b26393f70 (patch)
tree1453ff26f498b46009e44baf5103ec365a2988ed /src/usr/testcore/rtloader/loader.H
parent6155c62ab8eae064a0160bf8c042953637113d66 (diff)
downloadblackbird-hostboot-6454fc5ee6f30a98202f1595c458f32b26393f70.tar.gz
blackbird-hostboot-6454fc5ee6f30a98202f1595c458f32b26393f70.zip
HBRT: Support full targeting in Sapphire.
Change-Id: Ib8119e3c11cfa1171b76f2260871d2de5e99d502 RTC: 87716 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/8145 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/testcore/rtloader/loader.H')
-rw-r--r--src/usr/testcore/rtloader/loader.H34
1 files changed, 30 insertions, 4 deletions
diff --git a/src/usr/testcore/rtloader/loader.H b/src/usr/testcore/rtloader/loader.H
index c2935d769..eacb2b2af 100644
--- a/src/usr/testcore/rtloader/loader.H
+++ b/src/usr/testcore/rtloader/loader.H
@@ -28,6 +28,7 @@
#include <sys/mm.h>
#include <targeting/common/targetservice.H>
#include <targeting/common/attributes.H>
+#include <targeting/attrrp.H>
#include <targeting/common/utilFilter.H>
#include <errl/errlmanager.H>
#include <util/utillidmgr.H>
@@ -304,6 +305,8 @@ class RuntimeLoaderTest : public CxxTest::TestSuite
{
if (0 == strcmp(i_region, "ibm,hbrt-vpd-image"))
return rt_get_vpd();
+ else if (0 == strcmp(i_region, "ibm,hbrt-target-image"))
+ return rt_get_targ();
else
return 0;
}
@@ -318,15 +321,13 @@ class RuntimeLoaderTest : public CxxTest::TestSuite
// runtime VPD area not setup yet.
// Need to map the area into virtual memory
-
- uint64_t phys_addr = 0;
- errlHndl_t err = VPD::vpd_load_rt_image(phys_addr);
+ errlHndl_t err = VPD::vpd_load_rt_image(cv_vpd_phys_addr);
if(!err)
{
uint8_t * vpd_ptr =
- reinterpret_cast<uint8_t *>(phys_addr);
+ reinterpret_cast<uint8_t *>(cv_vpd_phys_addr);
void * vptr = mm_block_map(vpd_ptr, VMM_RT_VPD_SIZE);
@@ -346,13 +347,38 @@ class RuntimeLoaderTest : public CxxTest::TestSuite
}
+ static uint64_t rt_get_targ()
+ {
+ if (cv_targ_addr != 0)
+ {
+ return cv_targ_addr;
+ }
+
+ // Ensure cv_vpd_phys_addr is primed.
+ rt_get_vpd();
+
+ cv_targ_phys_addr = cv_vpd_phys_addr;
+ cv_targ_addr = reinterpret_cast<uint64_t>(
+ TARGETING::AttrRP::save(cv_targ_phys_addr));
+
+ return cv_targ_addr;
+ }
+
static uint64_t cv_vpd_addr;
+ static uint64_t cv_vpd_phys_addr;
+ static uint64_t cv_targ_addr;
+ static uint64_t cv_targ_phys_addr;
};
RuntimeLoaderTest::SCOM_MAP RuntimeLoaderTest::cv_scomMap;
std::map<void*, UtilLidMgr*> RuntimeLoaderTest::cv_loadedLids;
uint64_t RuntimeLoaderTest::cv_vpd_addr = 0;
+uint64_t RuntimeLoaderTest::cv_vpd_phys_addr = 0;
+uint64_t RuntimeLoaderTest::cv_targ_addr = 0;
+uint64_t RuntimeLoaderTest::cv_targ_phys_addr = 0;
+
+
#endif
OpenPOWER on IntegriCloud