summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPrachi Gupta <pragupta@us.ibm.com>2018-02-28 10:06:26 -0600
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2018-03-07 10:43:03 -0500
commit5ca1d497141ad56ed8510d621b1e522c1c9fe7dd (patch)
tree0ad549dac1007b8ab1a2b6b8b3d3a6ceff84d797 /src
parentb456c82ad8202fee197dee0274959cd020009f79 (diff)
downloadtalos-hostboot-5ca1d497141ad56ed8510d621b1e522c1c9fe7dd.tar.gz
talos-hostboot-5ca1d497141ad56ed8510d621b1e522c1c9fe7dd.zip
changes to move configureHbrt target type to IPC path to run on slave nodes
Change-Id: Iee5e5231851e6f6389f83607da35121dbfe5a0b9 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/54855 Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@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: Richard J. Knight <rjknight@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/usr/isteps/istep21/call_host_runtime_setup.C8
-rw-r--r--src/usr/runtime/populate_hbruntime.C37
2 files changed, 33 insertions, 12 deletions
diff --git a/src/usr/isteps/istep21/call_host_runtime_setup.C b/src/usr/isteps/istep21/call_host_runtime_setup.C
index bad88d537..67367b83b 100644
--- a/src/usr/isteps/istep21/call_host_runtime_setup.C
+++ b/src/usr/isteps/istep21/call_host_runtime_setup.C
@@ -480,14 +480,6 @@ void* call_host_runtime_setup (void *io_pArgs)
break;
}
- // Configure the ATTR_HBRT_HYP_ID attributes so that runtime code and
- // whichever hypervisor is loaded can reference equivalent targets
- l_err = RUNTIME::configureHbrtHypIds(TARGETING::is_phyp_load());
- if(l_err)
- {
- break;
- }
-
// Verify PAYLOAD and Move PAYLOAD+HDAT from Temporary TCE-related
// memory region to the proper location
l_err = verifyAndMovePayload();
diff --git a/src/usr/runtime/populate_hbruntime.C b/src/usr/runtime/populate_hbruntime.C
index 437db6f74..d222edc4d 100644
--- a/src/usr/runtime/populate_hbruntime.C
+++ b/src/usr/runtime/populate_hbruntime.C
@@ -78,7 +78,7 @@
#include <limits.h>
#include <errno.h>
#include <vmmconst.h>
-
+#include <runtime/customize_attrs_for_payload.H>
namespace RUNTIME
{
@@ -859,7 +859,23 @@ errlHndl_t populate_HbRsvMem(uint64_t i_nodeId, bool i_master_node)
auto l_hbrtSecurelyLoaded = false;
#endif
- do {
+ do
+ {
+ // Configure the ATTR_HBRT_HYP_ID attributes so that runtime code and
+ // whichever hypervisor is loaded can reference equivalent targets
+ // When populating hbRuntimeData, we make IPC calls if we are running
+ // on a multi-node configuration. The message handler for that IPC call,
+ // calls populateHbRsvMem. We want to setup hbrt target types for all
+ // the nodes. That's why, we moved this call here instead of directly
+ // calling it from istep21.
+ l_elog = RUNTIME::configureHbrtHypIds(TARGETING::is_phyp_load());
+ if (l_elog)
+ {
+ TRACFCOMP(g_trac_runtime, ERR_MRK"populate_HbRsvMem> i_nodeId=%d"
+ " configureHbrtHypIds failed");
+ break;
+ }
+
// Wipe out our cache of the NACA/SPIRA pointers
RUNTIME::rediscover_hdat();
@@ -2829,7 +2845,7 @@ errlHndl_t populate_hbRuntimeData( void )
TARGETING::ATTR_HB_EXISTING_IMAGE_type hb_images =
sys->getAttr<TARGETING::ATTR_HB_EXISTING_IMAGE>();
- TRACFCOMP( g_trac_runtime, "ATTR_HB_EXISTING_IMAGE (hb_images) = %#x",
+ TRACFCOMP( g_trac_runtime, "ATTR_HB_EXISTING_IMAGE (hb_images) = %x",
hb_images);
// Figure out which node we are running on
@@ -2844,7 +2860,7 @@ errlHndl_t populate_hbRuntimeData( void )
uint64_t nodeid = pe.instance;
- TRACFCOMP( g_trac_runtime, "Master node nodid = %#x",
+ TRACFCOMP( g_trac_runtime, "Master node nodid = %x",
nodeid);
// ATTR_HB_EXISTING_IMAGE only gets set on a multi-drawer system.
@@ -2863,6 +2879,19 @@ errlHndl_t populate_hbRuntimeData( void )
}
else
{
+ //When PAYLOAD_KIND = NONE (aka simics)
+ //Configure the ATTR_HBRT_HYP_ID attributes
+ //When PAYLOAD_KIND is set, we call this function from
+ //populate_HbRsvMem as that function is also executed on slave
+ //nodes in a multi-node config. But, moving it there removes
+ //this call in simics case. Therefore, adding it here.
+ l_elog = RUNTIME::configureHbrtHypIds(TARGETING::is_phyp_load());
+ if (l_elog)
+ {
+ TRACFCOMP(g_trac_runtime, ERR_MRK"populate_HbRsvMem> i_nodeId=%d"
+ " configureHbrtHypIds failed");
+ break;
+ }
// still fill in HB DATA for testing
uint64_t l_startAddr = cpu_spr_value(CPU_SPR_HRMOR) +
VMM_HB_DATA_TOC_START_OFFSET;
OpenPOWER on IntegriCloud