diff options
| author | Dan Crowell <dcrowell@us.ibm.com> | 2016-12-20 13:26:26 -0600 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-01-11 10:37:22 -0500 |
| commit | 16bb17deab2441e0368313f0aa77c442f5a2d3ef (patch) | |
| tree | aba952d20cd4571b044efb36bb2e0945c9e43222 /src/usr/runtime | |
| parent | dfad3c9a73492326c2b29908fbaed42917182f03 (diff) | |
| download | blackbird-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.C | 32 |
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>(); } |

