summaryrefslogtreecommitdiffstats
path: root/src/usr/util/runtime
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2018-06-08 16:03:18 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-06-10 21:28:53 -0400
commit4189613d36cc98d9b52ae72c1bb3727cdb16e34b (patch)
tree7dafbc7a76492288aa2c297d9a2a2f0016bc737c /src/usr/util/runtime
parentf290f5d4a9efbf70ae99ec0cdff5b676d63431f1 (diff)
downloadtalos-hostboot-4189613d36cc98d9b52ae72c1bb3727cdb16e34b.tar.gz
talos-hostboot-4189613d36cc98d9b52ae72c1bb3727cdb16e34b.zip
Fix for multinode HBRT use of VPD
Node0 VPD memory is being used for all nodes because we were using a Singleton pointer across modules. This is a problem because static memory is specific to each module which meant we were getting a new copy of the AttrRP object instead of the real version that had real data in it. The change here is to create a new static interface that external modules can call to retrieve the node associated with a given Target. There is also a change to cache this data into a map as I noticed hundreds of accesses during the one function call I was using to test with. Change-Id: I148bf1f405d076276193d526d8a4b1f0649b2c1c CQ: SW431462 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/60276 Tested-by: Jenkins Server <pfd-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: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/util/runtime')
-rw-r--r--src/usr/util/runtime/rt_cmds.C8
-rw-r--r--src/usr/util/runtime/util_rt.C2
2 files changed, 8 insertions, 2 deletions
diff --git a/src/usr/util/runtime/rt_cmds.C b/src/usr/util/runtime/rt_cmds.C
index ce7df1daf..4ce0f9a11 100644
--- a/src/usr/util/runtime/rt_cmds.C
+++ b/src/usr/util/runtime/rt_cmds.C
@@ -471,8 +471,14 @@ void cmd_readwritevpd(char*& o_output, DeviceFW::OperationType i_rtCmd,
size_t i(0);
for (; i < l_dataVec.size() -1; ++i )
{
+ if( i % 4 == 0 )
+ {
+ sprintf(&o_output[l_len],"\n");
+ l_len = strlen(o_output);
+ }
+
l_tempValue = l_dataVec[i];
- sprintf(&o_output[l_len],"\n%.8X ",(uint32_t)(l_tempValue>>32));
+ sprintf(&o_output[l_len],"%.8X ",(uint32_t)(l_tempValue>>32));
l_len = strlen(o_output);
sprintf(&o_output[l_len],"%.8X",(uint32_t)(l_tempValue));
diff --git a/src/usr/util/runtime/util_rt.C b/src/usr/util/runtime/util_rt.C
index 744462930..447e42656 100644
--- a/src/usr/util/runtime/util_rt.C
+++ b/src/usr/util/runtime/util_rt.C
@@ -89,7 +89,7 @@ uint64_t hb_get_rt_rsvd_mem(Util::hbrt_mem_label_t i_label,
}
TRACFCOMP(TARGETING::g_trac_targeting,
- EXIT_MRK"hb_get_rt_rsvd_mem(0x%X, %d, %ld) -> 0x%.16llX",
+ EXIT_MRK"hb_get_rt_rsvd_mem(0x%llX, %d, %ld) -> 0x%.16llX",
i_label, i_instance, o_size,l_label_data_addr);
return l_label_data_addr;
OpenPOWER on IntegriCloud