summaryrefslogtreecommitdiffstats
path: root/src/usr/util/runtime
diff options
context:
space:
mode:
authorMatt Derksen <mderkse1@us.ibm.com>2017-06-19 08:07:16 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-07-11 15:52:08 -0400
commit61f38bd338cfc056cb9e6d4f407b9279c437c4ab (patch)
tree103586a446f86f5ba2be04989404260d50d8f2c9 /src/usr/util/runtime
parent06b6c5e9291f0f25979e9ee1dbda1c780c9a98f0 (diff)
downloadtalos-hostboot-61f38bd338cfc056cb9e6d4f407b9279c437c4ab.tar.gz
talos-hostboot-61f38bd338cfc056cb9e6d4f407b9279c437c4ab.zip
Enable HDAT HB reserved memory when supported by FSP
Change-Id: Id0b156282e0197c6a8ed32d2e60066cb5c149edd RTC: 169478 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42077 Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-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/makefile1
-rw-r--r--src/usr/util/runtime/util_rt.C48
2 files changed, 19 insertions, 30 deletions
diff --git a/src/usr/util/runtime/makefile b/src/usr/util/runtime/makefile
index 6512606d2..c9bc4b0ef 100644
--- a/src/usr/util/runtime/makefile
+++ b/src/usr/util/runtime/makefile
@@ -34,6 +34,7 @@ OBJS += utilfile.o
OBJS += utillidpnor.o
OBJS += rt_cmds.o
OBJS += util_rt.o
+OBJS += utilrsvdmem.o
SUBDIRS += test.d
diff --git a/src/usr/util/runtime/util_rt.C b/src/usr/util/runtime/util_rt.C
index 633456248..aee9b4871 100644
--- a/src/usr/util/runtime/util_rt.C
+++ b/src/usr/util/runtime/util_rt.C
@@ -25,8 +25,10 @@
#include <targeting/common/trace.H>
#include <trace/interface.H>
#include <runtime/interface.h>
+#include <util/utilrsvdmem.H>
#include <util/runtime/util_rt.H>
+
/**
* @brief Get the address of a reserved hostboot memory region by its label
* @param[in] i_label HBRT_MEM_LABEL_ constant
@@ -35,22 +37,22 @@
* @return virtual address of region or 0
* @platform FSP, OpenPOWER
**/
-uint64_t hb_get_rt_rsvd_mem(hbrt_mem_label_t i_label,
+uint64_t hb_get_rt_rsvd_mem(Util::hbrt_mem_label_t i_label,
uint32_t i_instance,
uint64_t & o_size)
{
uint64_t l_label_data_addr = 0;
o_size = 0;
- TRACFCOMP(TARGETING::g_trac_targeting, ENTER_MRK"hb_get_rt_rsvd_mem(0x%llX, %d, %ld) -> 0x%X",
- i_label,i_instance, o_size,l_label_data_addr);
+ TRACFCOMP(TARGETING::g_trac_targeting,
+ ENTER_MRK"hb_get_rt_rsvd_mem(0x%llX, %d)", i_label, i_instance);
switch(i_label)
{
- case HBRT_MEM_LABEL_VPD:
- case HBRT_MEM_LABEL_ATTR:
- case HBRT_MEM_LABEL_ATTROVER:
- case HBRT_MEM_LABEL_PADDING:
+ case Util::HBRT_MEM_LABEL_VPD:
+ case Util::HBRT_MEM_LABEL_ATTR:
+ case Util::HBRT_MEM_LABEL_ATTROVER:
+ case Util::HBRT_MEM_LABEL_PADDING:
if( (g_hostInterfaces != NULL) &&
(g_hostInterfaces->get_reserved_mem) )
{
@@ -59,27 +61,12 @@ uint64_t hb_get_rt_rsvd_mem(hbrt_mem_label_t i_label,
i_instance);
if (0 != hb_data_addr)
{
- hbrtTableOfContents_t * toc_ptr =
- reinterpret_cast<hbrtTableOfContents_t *>(hb_data_addr);
-
- // Find offset of label section
- for (uint16_t i = 0; i < toc_ptr->total_entries; i++)
- {
- if (toc_ptr->entry[i].label == i_label)
- {
- l_label_data_addr = hb_data_addr +
- toc_ptr->entry[i].offset;
- o_size = toc_ptr->entry[i].size;
- TRACFCOMP(TARGETING::g_trac_targeting, "hb_get_rt_rsvd_mem: Entry found at 0x%.16llX, size %ld",
- l_label_data_addr, o_size);
- break;
- }
- }
-
- if (0 == o_size)
- {
- TRACFCOMP(TARGETING::g_trac_targeting, "hb_get_rt_rsvd_mem: Entry %.16llX not found", i_label);
- }
+ Util::hbrtTableOfContents_t * toc_ptr =
+ reinterpret_cast<Util::hbrtTableOfContents_t *>(
+ hb_data_addr);
+ l_label_data_addr = Util::hb_find_rsvd_mem_label(i_label,
+ toc_ptr,
+ o_size);
}
else
{
@@ -100,8 +87,9 @@ uint64_t hb_get_rt_rsvd_mem(hbrt_mem_label_t i_label,
break;
}
- TRACFCOMP(TARGETING::g_trac_targeting, EXIT_MRK"hb_get_rt_rsvd_mem(0x%X, %d, %ld) -> 0x%X",
- i_label,i_instance, o_size,l_label_data_addr);
+ TRACFCOMP(TARGETING::g_trac_targeting,
+ EXIT_MRK"hb_get_rt_rsvd_mem(0x%X, %d, %ld) -> 0x%.16llX",
+ i_label, i_instance, o_size,l_label_data_addr);
return l_label_data_addr;
}
OpenPOWER on IntegriCloud