summaryrefslogtreecommitdiffstats
path: root/src/usr/runtime
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2016-12-20 13:26:26 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-01-11 10:37:22 -0500
commit16bb17deab2441e0368313f0aa77c442f5a2d3ef (patch)
treeaba952d20cd4571b044efb36bb2e0945c9e43222 /src/usr/runtime
parentdfad3c9a73492326c2b29908fbaed42917182f03 (diff)
downloadblackbird-hostboot-16bb17deab2441e0368313f0aa77c442f5a2d3ef.tar.gz
blackbird-hostboot-16bb17deab2441e0368313f0aa77c442f5a2d3ef.zip
Add MEMBUF support to HBRT id logic
Change-Id: Ibffa288bd3a03d3265c023352b75be21879d9eb5 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/34102 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/runtime')
-rw-r--r--src/usr/runtime/customize_attrs_for_payload.C32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/usr/runtime/customize_attrs_for_payload.C b/src/usr/runtime/customize_attrs_for_payload.C
index 792392961..909517a68 100644
--- a/src/usr/runtime/customize_attrs_for_payload.C
+++ b/src/usr/runtime/customize_attrs_for_payload.C
@@ -389,7 +389,37 @@ errlHndl_t configureHbrtHypIds(const bool i_configForPhyp)
hbrtHypId =
pEx->getAttr<TARGETING::ATTR_ORDINAL_ID>();
}
- else
+ else if( (*pIt)->getAttr<TARGETING::ATTR_TYPE>()
+ == TARGETING::TYPE_MEMBUF )
+ {
+ //MEMBUF
+ // 0b1000.0000.0000.0000.0000.0PPP.PPPP.MMMM
+ // where PP is the parent proc's id, MMMM is memory channel
+ //
+ TARGETING::TargetHandleList targetList;
+
+ getParentAffinityTargets(targetList,
+ (*pIt),
+ TARGETING::CLASS_UNIT,
+ TARGETING::TYPE_MCS);
+ assert( !targetList.empty() );
+
+ auto mcs_target = targetList[0];
+ auto pos = mcs_target->getAttr<TARGETING::ATTR_CHIP_UNIT>();
+
+ targetList.clear();
+ getParentAffinityTargets(targetList,
+ mcs_target,
+ TARGETING::CLASS_CHIP,
+ TARGETING::TYPE_PROC);
+ assert( !targetList.empty() );
+
+ auto procTarget = targetList[0];
+ hbrtHypId = procTarget->getAttr<TARGETING::ATTR_ORDINAL_ID>();
+ hbrtHypId = (hbrtHypId << RT_TARG::MEMBUF_ID_SHIFT);
+ hbrtHypId += pos;
+ }
+ else // just PROC
{
hbrtHypId = (*pIt)->getAttr<TARGETING::ATTR_ORDINAL_ID>();
}
OpenPOWER on IntegriCloud