summaryrefslogtreecommitdiffstats
path: root/src/usr/runtime
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2017-07-11 13:11:58 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-07-13 09:47:05 -0400
commit1aa0813d81f7a224583a46e20fd03a437d0ff479 (patch)
tree7895cf1fa893d1a75ef3afa2d13e8eeb17626df4 /src/usr/runtime
parent86ce314365a363fee2f5e4d305ebcc1c96f47016 (diff)
downloadtalos-hostboot-1aa0813d81f7a224583a46e20fd03a437d0ff479.tar.gz
talos-hostboot-1aa0813d81f7a224583a46e20fd03a437d0ff479.zip
Correctly handle sbe ranges for multiple chips
Fixing a bug where we did not use unique instance ids for each SBE's comm and ffdc area. Also reconciled a couple related mismatches and added some traces for easier debug. CQ: SW395465 Change-Id: Ib2a50644c114e5b08222b9fb19e92923466fa24c Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42994 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-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/runtime')
-rw-r--r--src/usr/runtime/populate_hbruntime.C10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/usr/runtime/populate_hbruntime.C b/src/usr/runtime/populate_hbruntime.C
index 4fb289c54..4c9f30847 100644
--- a/src/usr/runtime/populate_hbruntime.C
+++ b/src/usr/runtime/populate_hbruntime.C
@@ -650,6 +650,8 @@ errlHndl_t populate_HbRsvMem(uint64_t i_nodeId)
l_homerAddr = l_procChip->getAttr
<TARGETING::ATTR_HOMER_PHYS_ADDR>();
+ // Note: the instance we use to retrieve the data must
+ // match the value we used to populate HDAT originally
l_elog = setNextHbRsvMemEntry(HDAT::RHB_TYPE_HOMER_OCC,
l_procChip->getAttr<TARGETING::ATTR_HBRT_HYP_ID>(),
l_homerAddr,
@@ -841,6 +843,10 @@ errlHndl_t populate_HbRsvMem(uint64_t i_nodeId)
// Loop through all functional Procs
for (const auto & l_procChip: l_procChips)
{
+ // Note: the instance we use to retrieve the data must
+ // match the value we used to populate HDAT originally
+ uint32_t l_id = l_procChip->getAttr<TARGETING::ATTR_HBRT_HYP_ID>();
+
// -- SBE Communications buffer entry
if(TARGETING::is_phyp_load())
{
@@ -852,7 +858,7 @@ errlHndl_t populate_HbRsvMem(uint64_t i_nodeId)
}
l_elog = setNextHbRsvMemEntry(HDAT::RHB_TYPE_HBRT,
- i_nodeId,
+ l_id,
l_sbeCommAddr,
l_sbeCommSizeAligned,
HBRT_RSVD_MEM__SBE_COMM);
@@ -879,7 +885,7 @@ errlHndl_t populate_HbRsvMem(uint64_t i_nodeId)
}
l_elog = setNextHbRsvMemEntry(HDAT::RHB_TYPE_HBRT,
- i_nodeId,
+ l_id,
l_sbeffdcAddr,
l_sbeffdcSizeAligned,
HBRT_RSVD_MEM__SBE_FFDC);
OpenPOWER on IntegriCloud