From 78c7928126a9ece9cd466be1e0598bf3f082b977 Mon Sep 17 00:00:00 2001 From: Matt Derksen Date: Mon, 16 Jul 2018 16:57:08 -0500 Subject: Only store HRMOR value on primary node There is a single field in HDAT where Hostboot fills in an address where PHYP will then write the new HRMOR value any time it changes. The problem is that the independent Hostboot instance in each node is writing the same field with their own node-relative address. There is only 1 field so the last node in will win. Then on the mpipl we won't be able to find it. Change-Id: I18f64816f20b0a3fc2951dff457d9511ca27e1d2 CQ:SW438101 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/62763 Tested-by: Jenkins Server Reviewed-by: Richard Ward Tested-by: Jenkins OP Build CI Tested-by: FSP CI Jenkins Tested-by: Jenkins OP HW Reviewed-by: Christian R. Geddes Reviewed-by: Corey V. Swenson Reviewed-by: Daniel M. Crowell --- src/usr/runtime/populate_hbruntime.C | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src/usr/runtime') diff --git a/src/usr/runtime/populate_hbruntime.C b/src/usr/runtime/populate_hbruntime.C index 5b887022c..28fab3e7d 100644 --- a/src/usr/runtime/populate_hbruntime.C +++ b/src/usr/runtime/populate_hbruntime.C @@ -556,14 +556,6 @@ errlHndl_t fill_RsvMem_hbData(uint64_t & io_start_address, ALIGN_PAGE(l_hbTOC.entry[l_hbTOC.total_entries].size); l_hbTOC.total_entries++; - // Fill in HYPCOMM size - l_hbTOC.entry[l_hbTOC.total_entries].label = Util::HBRT_MEM_LABEL_HYPCOMM; - l_hbTOC.entry[l_hbTOC.total_entries].offset = 0; - l_hbTOC.entry[l_hbTOC.total_entries].size = sizeof(hbHypCommArea_t); - l_totalSectionSize += - ALIGN_PAGE(l_hbTOC.entry[l_hbTOC.total_entries].size); - l_hbTOC.total_entries++; - // Fill in VPD_XXXX sizes (if there are any) VPD::OverrideRsvMemMap_t l_vpdOverrides; VPD::getListOfOverrideSections( l_vpdOverrides ); @@ -579,7 +571,7 @@ errlHndl_t fill_RsvMem_hbData(uint64_t & io_start_address, l_hbTOC.total_entries++; } - // Fill in the TRACEBUF only for Master Node + // Fill in the TRACEBUF & HYPCOMM only for Master Node if(i_master_node == true ) { // Fill in TRACEBUF size @@ -589,6 +581,14 @@ errlHndl_t fill_RsvMem_hbData(uint64_t & io_start_address, l_totalSectionSize += ALIGN_PAGE(l_hbTOC.entry[l_hbTOC.total_entries].size); l_hbTOC.total_entries++; + + // Fill in HYPCOMM size + l_hbTOC.entry[l_hbTOC.total_entries].label = Util::HBRT_MEM_LABEL_HYPCOMM; + l_hbTOC.entry[l_hbTOC.total_entries].offset = 0; + l_hbTOC.entry[l_hbTOC.total_entries].size = sizeof(hbHypCommArea_t); + l_totalSectionSize += + ALIGN_PAGE(l_hbTOC.entry[l_hbTOC.total_entries].size); + l_hbTOC.total_entries++; } l_totalSectionSize += sizeof(l_hbTOC); // Add 4KB Table of Contents -- cgit v1.2.3