diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2017-07-11 13:11:58 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-07-13 09:47:05 -0400 |
commit | 1aa0813d81f7a224583a46e20fd03a437d0ff479 (patch) | |
tree | 7895cf1fa893d1a75ef3afa2d13e8eeb17626df4 /src/usr/runtime | |
parent | 86ce314365a363fee2f5e4d305ebcc1c96f47016 (diff) | |
download | talos-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.C | 10 |
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); |