summaryrefslogtreecommitdiffstats
path: root/src/usr/runtime
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2014-08-04 13:31:50 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-08-05 10:59:42 -0500
commit6fd52005feb03cabc701b6e391344c03decab382 (patch)
treee3388ca738dad141cb604d90ca24260ba4473b66 /src/usr/runtime
parent65067e28d9ff34d4fdc459b0d5963ac718b4849d (diff)
downloadtalos-hostboot-6fd52005feb03cabc701b6e391344c03decab382.tar.gz
talos-hostboot-6fd52005feb03cabc701b6e391344c03decab382.zip
Allow booting from 1 node that isn't node0
Change-Id: Ifab17f76fcb1334ce76561dfb7fce5a2ac218593 CQ: SW271293 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/12611 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Michael Baiocchi <baiocchi@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/runtime')
-rw-r--r--src/usr/runtime/populate_attributes.C17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/usr/runtime/populate_attributes.C b/src/usr/runtime/populate_attributes.C
index cbce21677..fb9f23cd7 100644
--- a/src/usr/runtime/populate_attributes.C
+++ b/src/usr/runtime/populate_attributes.C
@@ -412,6 +412,7 @@ errlHndl_t populate_node_attributes( uint64_t i_nodeNum )
do {
TRACDCOMP( g_trac_runtime, "-NODE-" );
+ TRACFCOMP( g_trac_runtime, "populate_node_attributes(node=%d)", i_nodeNum );
// allocate memory and fill it with some junk data
uint64_t node_data_addr = 0;
@@ -690,6 +691,11 @@ errlHndl_t populate_attributes( void )
TARGETING::ATTR_HB_EXISTING_IMAGE_type hb_images =
sys->getAttr<TARGETING::ATTR_HB_EXISTING_IMAGE>();
+ // Figure out which node we are running on
+ TARGETING::Target* mproc = NULL;
+ TARGETING::targetService().masterProcChipTargetHandle(mproc);
+ uint64_t nodeid = mproc->getAttr<TARGETING::ATTR_FABRIC_NODE_ID>();
+
// ATTR_HB_EXISTING_IMAGE only gets set on a multi-drawer system.
// Currently set up in host_sys_fab_iovalid_processing() which only
// gets called if there are multiple physical nodes. It eventually
@@ -697,11 +703,7 @@ errlHndl_t populate_attributes( void )
uint64_t present_nodes = hb_images;
if(hb_images == 0)
{
- // Figure out which node we are running on and set the
- // appropriate bit
- TARGETING::Target* mproc = NULL;
- TARGETING::targetService().masterProcChipTargetHandle(mproc);
- uint64_t nodeid = mproc->getAttr<TARGETING::ATTR_FABRIC_NODE_ID>();
+ // Set the appropriate bit for our node
present_nodes = ((uint64_t)0x1
<< ((sizeof(present_nodes) * 8) - 1))
>> nodeid;
@@ -724,9 +726,8 @@ errlHndl_t populate_attributes( void )
// Single or Multi-node?
if(hb_images == 0) //Single-node
{
- // Single node system
- errhdl = populate_node_attributes(0);
-
+ // Single node system, call inline and pass in our node number
+ errhdl = populate_node_attributes(nodeid);
if(errhdl != NULL)
{
TRACFCOMP( g_trac_runtime, "populate_node_attributes failed" );
OpenPOWER on IntegriCloud