summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLateef Quraishi <lateef@us.ibm.com>2016-09-13 09:18:54 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-09-21 16:59:38 -0400
commitfe3a5bea6fcadd8ef33dbd155ffc90add0c71aba (patch)
tree0e21d62300e1a04c63653f1fbcccd27e26f77b36
parent142582dcca86c52698662aec925495bac8dc7059 (diff)
downloadtalos-hostboot-fe3a5bea6fcadd8ef33dbd155ffc90add0c71aba.tar.gz
talos-hostboot-fe3a5bea6fcadd8ef33dbd155ffc90add0c71aba.zip
getChipletNumber support for more target types
- Types added: CAPP, PEC, PHB, and NV Change-Id: I10effd492331b0439ca27df8c6ea80f6581b5899 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/29587 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rw-r--r--src/usr/fapi2/test/fapi2GetChipletNumTest.H505
-rw-r--r--src/usr/fapi2/test/fapi2TestUtils.H13
-rwxr-xr-xsrc/usr/targeting/common/genHwsvMrwXml.pl30
-rw-r--r--src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml166
-rw-r--r--src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml48
5 files changed, 606 insertions, 156 deletions
diff --git a/src/usr/fapi2/test/fapi2GetChipletNumTest.H b/src/usr/fapi2/test/fapi2GetChipletNumTest.H
index 970b5bcf0..01c65c0bc 100644
--- a/src/usr/fapi2/test/fapi2GetChipletNumTest.H
+++ b/src/usr/fapi2/test/fapi2GetChipletNumTest.H
@@ -35,51 +35,276 @@ class Fapi2GetChipletNum : public CxxTest::TestSuite
{
public:
+ void testVerifyiPhbChipletNum()
+ {
+ uint8_t l_chiplet_id = 0;
+ uint8_t l_exp_chiplet_id = 0;
+ uint8_t l_chip_unit = 0;
+
+ FAPI_INF ("Start testVerifyiPhbChipletNum");
+ do
+ {
+ // find all PHB units
+ TARGETING::Target * pSys;
+ TARGETING::targetService().getTopLevelTarget(pSys);
+ TARGETING::PredicateCTM predPhb(TARGETING::CLASS_UNIT,
+ TARGETING::TYPE_PHB);
+
+ TARGETING::TargetHandleList l_TargetList;
+ TARGETING::targetService().getAssociated( l_TargetList, pSys,
+ TARGETING::TargetService::CHILD,
+ TARGETING::TargetService::ALL,
+ &predPhb);
+
+ if (l_TargetList.empty())
+ {
+ TS_FAIL("testVerifyiPhbChipletNum: empty l_TargetList");
+ break;
+ }
+
+ // Iterate through all PHB chiplets
+ for (auto & l_Target : l_TargetList)
+ {
+ // map Targeting Type to fapi2 Type
+ Target<fapi2::TARGET_TYPE_PHB> fapi2_Target( l_Target);
+ l_chiplet_id = fapi2_Target.getChipletNumber();
+
+ FAPI_DBG("testVerifyiPhbChipletNum HUID: %.8X, ChipletId: %.8X",
+ TARGETING::get_huid(l_Target), l_chiplet_id);
+
+ l_chip_unit = l_Target->getAttr<TARGETING::ATTR_CHIP_UNIT>();
+
+ // PEC-0 PBH-0 maps to pervasive id 0x0D
+ if (l_chip_unit == 0)
+ {
+ l_exp_chiplet_id = START_PEC_0_CHIPLET_NUM;
+ }
+ // PEC-1 PBH-0 maps to pervasive id 0x0E
+ // PEC-1 PBH-1 maps to pervasive id 0x0E
+ else if ((l_chip_unit >= 1) && (l_chip_unit <= 2))
+ {
+ l_exp_chiplet_id = START_PEC_1_CHIPLET_NUM;
+ }
+ // PEC-2 PBH-0 maps to pervasive id 0x0F
+ // PEC-2 PBH-1 maps to pervasive id 0x0F
+ // PEC-2 PBH-2 maps to pervasive id 0x0F
+ else if ((l_chip_unit >= 3) && (l_chip_unit <= 5))
+ {
+ l_exp_chiplet_id = START_PEC_2_CHIPLET_NUM;
+ }
+
+ if (l_chiplet_id != l_exp_chiplet_id)
+ {
+ TS_FAIL("testVerifyiPhbChipletNum: Mismatch - Expected: %.8X:, Found: %.8X",
+ l_exp_chiplet_id, l_chiplet_id);
+ break;
+ }
+ }
+ } while(0);
+ FAPI_INF("Complete testVerifyiPhbChipletNum");
+ }
+
+ void testVerifyNvChipletNum()
+ {
+ uint8_t l_chiplet_id = 0;
+ uint8_t l_exp_chiplet_id = 0;
+
+ FAPI_INF ("Start testVerifyNvChipletNum");
+ do
+ {
+ // find the all NV units
+ TARGETING::Target * pSys;
+ TARGETING::targetService().getTopLevelTarget(pSys);
+ TARGETING::PredicateCTM predNv(TARGETING::CLASS_UNIT,
+ TARGETING::TYPE_NV);
+
+ TARGETING::TargetHandleList l_TargetList;
+ TARGETING::targetService().getAssociated( l_TargetList, pSys,
+ TARGETING::TargetService::CHILD,
+ TARGETING::TargetService::ALL,
+ &predNv);
+
+ if (l_TargetList.empty())
+ {
+ TS_FAIL("testVerifyNvChipletNum: empty l_TargetList");
+ break;
+ }
+
+ // Iterate through all NV chiplets
+ for (auto & l_Target : l_TargetList)
+ {
+ // map Targeting Type to fapi2 Type
+ Target<fapi2::TARGET_TYPE_NV> fapi2_Target( l_Target);
+ l_chiplet_id = fapi2_Target.getChipletNumber();
+
+ FAPI_DBG("testVerifyNvChipletNum HUID: %.8X, ChipletId: %.8X",
+ TARGETING::get_huid(l_Target), l_chiplet_id);
+
+ // NV 0,1 maps to pervasive id 0x05
+ l_exp_chiplet_id = START_NV_CHIPLET_NUM;
+
+ if (l_chiplet_id != l_exp_chiplet_id)
+ {
+ TS_FAIL("testVerifyNvChipletNum: Mismatch - Expected: %.8X:, Found: %.8X",
+ l_exp_chiplet_id, l_chiplet_id);
+ break;
+ }
+ }
+ } while(0);
+ FAPI_INF("Complete testVerifyNvChipletNum");
+ }
+
+ void testVerifyPecChipletNum()
+ {
+ uint8_t l_chiplet_id = 0;
+ uint8_t l_exp_chiplet_id = 0;
+ uint8_t l_chip_unit = 0;
+
+ FAPI_INF ("Start testVerifyPecChipletNum");
+ do
+ {
+ // find all PEC units
+ TARGETING::Target * pSys;
+ TARGETING::targetService().getTopLevelTarget(pSys);
+ TARGETING::PredicateCTM predPec(TARGETING::CLASS_UNIT,
+ TARGETING::TYPE_PEC);
+
+ TARGETING::TargetHandleList l_TargetList;
+ TARGETING::targetService().getAssociated( l_TargetList, pSys,
+ TARGETING::TargetService::CHILD,
+ TARGETING::TargetService::ALL,
+ &predPec);
+
+ if (l_TargetList.empty())
+ {
+ TS_FAIL("testVerifyPecChipletNum: empty l_TargetList");
+ break;
+ }
+
+ // Iterate through all PEC chiplets
+ for (auto & l_Target : l_TargetList)
+ {
+ // map Targeting Type to fapi2 Type
+ Target<fapi2::TARGET_TYPE_PEC> fapi2_Target( l_Target);
+ l_chiplet_id = fapi2_Target.getChipletNumber();
+
+ FAPI_DBG("testVerifyPecChipletNum HUID: %.8X, ChipletId: %.8X",
+ TARGETING::get_huid(l_Target), l_chiplet_id);
+
+ // PEC 0,1,2 maps to pervasive ids 0x0D, 0x0E, 0x0F
+ l_chip_unit = l_Target->getAttr<TARGETING::ATTR_CHIP_UNIT>();
+ l_exp_chiplet_id = l_chip_unit + START_PEC_0_CHIPLET_NUM;
+
+ if (l_chiplet_id != l_exp_chiplet_id)
+ {
+ TS_FAIL("testVerifyPecChipletNum: Mismatch - Expected: %.8X:, Found: %.8X",
+ l_exp_chiplet_id, l_chiplet_id);
+ break;
+ }
+ }
+ } while(0);
+ FAPI_INF("Complete testVerifyPecChipletNum");
+ }
+
+ void testVerifyCappChipletNum()
+ {
+ uint8_t l_chiplet_id = 0;
+ uint8_t l_exp_chiplet_id = 0;
+ uint8_t l_chip_unit = 0;
+
+ FAPI_INF ("Start testVerifyCappChipletNum");
+ do
+ {
+ // find all CAPP units
+ TARGETING::Target * pSys;
+ TARGETING::targetService().getTopLevelTarget(pSys);
+ TARGETING::PredicateCTM predCapp(TARGETING::CLASS_UNIT,
+ TARGETING::TYPE_CAPP);
+
+ TARGETING::TargetHandleList l_TargetList;
+ TARGETING::targetService().getAssociated( l_TargetList, pSys,
+ TARGETING::TargetService::CHILD,
+ TARGETING::TargetService::ALL,
+ &predCapp);
+
+ if (l_TargetList.empty())
+ {
+ TS_FAIL("testVerifyCappChipletNum: empty l_TargetList");
+ break;
+ }
+
+ // Iterate through all CAPP chiplets
+ for (auto & l_Target : l_TargetList)
+ {
+ // map Targeting Type to fapi2 Type
+ Target<fapi2::TARGET_TYPE_CAPP> fapi2_Target( l_Target);
+ l_chiplet_id = fapi2_Target.getChipletNumber();
+
+ FAPI_DBG("testVerifyCappChipletNum HUID: %.8X, ChipletId: %.8X",
+ TARGETING::get_huid(l_Target), l_chiplet_id);
+
+ // CAPP 0,1 maps to pervasive ids 0x02, 0x04
+ l_chip_unit = l_Target->getAttr<TARGETING::ATTR_CHIP_UNIT>();
+ if (l_chip_unit == 0 )
+ {
+ l_exp_chiplet_id = START_CAPP_CHIPLET_NUM;
+ }
+ else
+ {
+ l_exp_chiplet_id = START_CAPP_CHIPLET_NUM + 2;
+ }
+
+ if (l_chiplet_id != l_exp_chiplet_id)
+ {
+ TS_FAIL("testVerifyCappChipletNum: Mismatch - Expected: %.8X:, Found: %.8X",
+ l_exp_chiplet_id, l_chiplet_id);
+ break;
+ }
+ }
+ } while(0);
+ FAPI_INF("Complete testVerifyCappChipletNum");
+ }
+
void testVerifyMcbistChipletNum()
{
uint8_t l_chiplet_id = 0;
uint8_t l_exp_chiplet_id = 0;
- uint8_t chipUnit = 0;
+ uint8_t l_chip_unit = 0;
FAPI_INF ("Start testVerifyMcbistChipletNum");
do
{
- // find the unit
+ // find all MCBIST units
TARGETING::Target * pSys;
TARGETING::targetService().getTopLevelTarget(pSys);
TARGETING::PredicateCTM predMcbist(TARGETING::CLASS_UNIT,
TARGETING::TYPE_MCBIST);
- TARGETING::TargetHandleList pMcbistList;
- TARGETING::targetService().getAssociated( pMcbistList, pSys,
+ TARGETING::TargetHandleList l_TargetList;
+ TARGETING::targetService().getAssociated( l_TargetList, pSys,
TARGETING::TargetService::CHILD,
TARGETING::TargetService::ALL,
&predMcbist);
- if (pMcbistList.empty())
+ if (l_TargetList.empty())
{
- TS_FAIL("testVerifyMcbistChipletNum: empty pMcbistList");
+ TS_FAIL("testVerifyMcbistChipletNum: empty l_TargetList");
break;
}
- // Iterate through present procs
- for (TARGETING::TargetHandleList::const_iterator
- l_mcbistIter = pMcbistList.begin();
- l_mcbistIter != pMcbistList.end();
- ++l_mcbistIter)
+ // Iterate through all MCBIST chiplets
+ for (auto & l_Target : l_TargetList)
{
-
- TARGETING::Target * pTarTarget = *l_mcbistIter;
-
// map Targeting Type to fapi2 Type
- Target<fapi2::TARGET_TYPE_MCBIST> fapi2_Target( pTarTarget);
+ Target<fapi2::TARGET_TYPE_MCBIST> fapi2_Target( l_Target);
l_chiplet_id = fapi2_Target.getChipletNumber();
FAPI_DBG("testVerifyMcbistChipletNum HUID: %.8X, ChipletId: %.8X",
- TARGETING::get_huid(pTarTarget), l_chiplet_id);
+ TARGETING::get_huid(l_Target), l_chiplet_id);
- chipUnit = pTarTarget->getAttr<TARGETING::ATTR_CHIP_UNIT>();
- l_exp_chiplet_id = chipUnit + START_MCBIST_CHIPLET_NUM;
+ // MCBIST 0,1 maps to pervasive ids 0x07, 0x08
+ l_chip_unit = l_Target->getAttr<TARGETING::ATTR_CHIP_UNIT>();
+ l_exp_chiplet_id = l_chip_unit + START_MCBIST_CHIPLET_NUM;
if (l_chiplet_id != l_exp_chiplet_id)
{
@@ -100,51 +325,47 @@ class Fapi2GetChipletNum : public CxxTest::TestSuite
FAPI_INF("Start testVerifyMcsChipletNum");
do
{
- // find the unit
+ // find all MCS units
TARGETING::Target * pSys;
TARGETING::targetService().getTopLevelTarget(pSys);
TARGETING::PredicateCTM predMcs(TARGETING::CLASS_UNIT,
TARGETING::TYPE_MCS);
- TARGETING::TargetHandleList pMcsList;
- TARGETING::targetService().getAssociated( pMcsList, pSys,
+ TARGETING::TargetHandleList l_TargetList;
+ TARGETING::targetService().getAssociated( l_TargetList, pSys,
TARGETING::TargetService::CHILD,
TARGETING::TargetService::ALL,
&predMcs);
- if (pMcsList.empty())
+ if (l_TargetList.empty())
{
- TS_FAIL("testVerifyMcsChipletNum: empty pMcsList");
+ TS_FAIL("testVerifyMcsChipletNum: empty l_TargetList");
break;
}
- // Iterate through present procs
- for (TARGETING::TargetHandleList::const_iterator
- l_mcsIter = pMcsList.begin();
- l_mcsIter != pMcsList.end();
- ++l_mcsIter)
+ // Iterate through all MCS chiplets
+ for (auto & l_Target : l_TargetList)
{
- TARGETING::Target * pTarTarget = *l_mcsIter;
-
// map Targeting Type to fapi2 Type
- Target<fapi2::TARGET_TYPE_MCS> fapi2_Target(pTarTarget);
+ Target<fapi2::TARGET_TYPE_MCS> fapi2_Target(l_Target);
l_chiplet_id = fapi2_Target.getChipletNumber();
FAPI_DBG("testVerifyMcsChipletNum HUID: %.8X, ChipletId: %.8X",
- TARGETING::get_huid(pTarTarget),
+ TARGETING::get_huid(l_Target),
l_chiplet_id);
ReturnCode l_rc;
- fapi2::ATTR_CHIP_UNIT_POS_Type chipPos = 0;
+ fapi2::ATTR_CHIP_UNIT_POS_Type l_chipPos = 0;
l_rc = FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS,
- pTarTarget,chipPos);
+ l_Target, l_chipPos);
if( l_rc )
{
TS_FAIL("testVerifyMcsChipletNum: Error getting fapi::ATTR_CHIP_UNIT_POS");
break;
}
- l_exp_chiplet_id = (chipPos/2) + START_MCBIST_CHIPLET_NUM;
+ // MCS 0..1, 2..3 maps to pervasive ids 0x07, 0x08
+ l_exp_chiplet_id = (l_chipPos/2) + START_MCBIST_CHIPLET_NUM;
if (l_chiplet_id != l_exp_chiplet_id)
{
@@ -161,47 +382,42 @@ class Fapi2GetChipletNum : public CxxTest::TestSuite
{
uint8_t l_chiplet_id = 0;
uint8_t l_exp_chiplet_id = 0;
- uint8_t chipUnit = 0;
+ uint8_t l_chip_unit = 0;
FAPI_INF("Start testVerifyMcaChipletNum");
do
{
- // find the unit
+ // find all MCA units
TARGETING::Target * pSys;
TARGETING::targetService().getTopLevelTarget(pSys);
TARGETING::PredicateCTM predMca(TARGETING::CLASS_UNIT,
TARGETING::TYPE_MCA);
- TARGETING::TargetHandleList pMcaistList;
- TARGETING::targetService().getAssociated( pMcaistList, pSys,
+ TARGETING::TargetHandleList l_TargetList;
+ TARGETING::targetService().getAssociated( l_TargetList, pSys,
TARGETING::TargetService::CHILD,
TARGETING::TargetService::ALL,
&predMca);
- if (pMcaistList.empty())
+ if (l_TargetList.empty())
{
TS_FAIL("testVerifyMcaChipletNum: empty pMcbistList");
break;
}
- // Iterate through present procs
- for (TARGETING::TargetHandleList::const_iterator
- l_mcaistIter = pMcaistList.begin();
- l_mcaistIter != pMcaistList.end();
- ++l_mcaistIter)
+ // Iterate through all MCA chiplets
+ for (auto & l_Target : l_TargetList)
{
-
- TARGETING::Target * pTarTarget = *l_mcaistIter;
-
// map Targeting Type to fapi2 Type
- Target<fapi2::TARGET_TYPE_MCBIST> fapi2_Target( pTarTarget);
+ Target<fapi2::TARGET_TYPE_MCBIST> fapi2_Target( l_Target);
l_chiplet_id = fapi2_Target.getChipletNumber();
FAPI_DBG("testVerifyMcaChipletNum HUID: %.8X, ChipletId: %.8X",
- TARGETING::get_huid(pTarTarget), l_chiplet_id);
+ TARGETING::get_huid(l_Target), l_chiplet_id);
- chipUnit = pTarTarget->getAttr<TARGETING::ATTR_CHIP_UNIT>();
- l_exp_chiplet_id = chipUnit / 4 + START_MCBIST_CHIPLET_NUM;
+ // MCA 0..3, 4..7 maps to pervasive ids 0x07, 0x08
+ l_chip_unit = l_Target->getAttr<TARGETING::ATTR_CHIP_UNIT>();
+ l_exp_chiplet_id = l_chip_unit / 4 + START_MCBIST_CHIPLET_NUM;
if (l_chiplet_id != l_exp_chiplet_id)
{
@@ -218,58 +434,53 @@ class Fapi2GetChipletNum : public CxxTest::TestSuite
{
uint8_t l_chiplet_id = 0;
uint8_t l_exp_chiplet_id = 0;
- uint8_t chipUnit = 0;
+ uint8_t l_chip_unit = 0;
FAPI_INF("Start testVerifyObusChipletNum");
do
{
- // find the unit
+ // find all OBUS units
TARGETING::Target * pSys;
TARGETING::targetService().getTopLevelTarget(pSys);
TARGETING::PredicateCTM predObus(TARGETING::CLASS_UNIT,
TARGETING::TYPE_OBUS);
- TARGETING::TargetHandleList pObusList;
- TARGETING::targetService().getAssociated( pObusList, pSys,
+ TARGETING::TargetHandleList l_TargetList;
+ TARGETING::targetService().getAssociated( l_TargetList, pSys,
TARGETING::TargetService::CHILD,
TARGETING::TargetService::ALL,
&predObus);
- if (pObusList.empty())
+ if (l_TargetList.empty())
{
- TS_FAIL("testVerifyObusChipletNum: empty pObusList");
+ TS_FAIL("testVerifyObusChipletNum: empty l_TargetList");
break;
}
- // Iterate through present procs
- for (TARGETING::TargetHandleList::const_iterator
- l_obusIter = pObusList.begin();
- l_obusIter != pObusList.end();
- ++l_obusIter)
+ // Iterate through all OBUS chiplets
+ for (auto & l_Target : l_TargetList)
{
- TARGETING::Target * pTarTarget = *l_obusIter;
-
// map Targeting Type to fapi2 Type
- Target<fapi2::TARGET_TYPE_OBUS> fapi2_Target( pTarTarget);
+ Target<fapi2::TARGET_TYPE_OBUS> fapi2_Target( l_Target);
l_chiplet_id = fapi2_Target.getChipletNumber();
FAPI_DBG("testVerifyObusChipletNum HUID: %.8X, ChipletId: %.8X",
- TARGETING::get_huid(pTarTarget),
+ TARGETING::get_huid(l_Target),
l_chiplet_id);
ReturnCode l_rc;
- fapi2::ATTR_CHIP_UNIT_POS_Type chipPos = 0;
+ fapi2::ATTR_CHIP_UNIT_POS_Type l_chipPos = 0;
l_rc = FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS,
- pTarTarget,chipPos);
+ l_Target, l_chipPos);
if( l_rc )
{
TS_FAIL("testVerifyObusChipletNum: Error getting fapi::ATTR_CHIP_UNIT_POS");
break;
}
- // Nimbus has two obuses 0 & 3
- chipUnit = pTarTarget->getAttr<TARGETING::ATTR_CHIP_UNIT>();
- l_exp_chiplet_id = chipUnit + START_OBUS_CHIPLET_NUM;
+ // OBUS 0,3 maps to pervasive ids 0x09, 0x0C
+ l_chip_unit = l_Target->getAttr<TARGETING::ATTR_CHIP_UNIT>();
+ l_exp_chiplet_id = l_chip_unit + START_OBUS_CHIPLET_NUM;
if (l_chiplet_id != l_exp_chiplet_id)
{
@@ -289,40 +500,36 @@ class Fapi2GetChipletNum : public CxxTest::TestSuite
FAPI_INF("Start testVerifyXbusChipletNum");
do
{
- // find the unit
+ // find all XBUS units
TARGETING::Target * pSys;
TARGETING::targetService().getTopLevelTarget(pSys);
TARGETING::PredicateCTM predXbus(TARGETING::CLASS_UNIT,
TARGETING::TYPE_XBUS);
- TARGETING::TargetHandleList pXbusList;
- TARGETING::targetService().getAssociated( pXbusList, pSys,
+ TARGETING::TargetHandleList l_TargetList;
+ TARGETING::targetService().getAssociated( l_TargetList, pSys,
TARGETING::TargetService::CHILD,
TARGETING::TargetService::ALL,
&predXbus);
- if (pXbusList.empty())
+ if (l_TargetList.empty())
{
- TS_FAIL("testVerifyXbusChipletNum: empty pXbusList");
+ TS_FAIL("testVerifyXbusChipletNum: empty l_TargetList");
break;
}
- // Iterate through present procs
- for (TARGETING::TargetHandleList::const_iterator
- l_xbusIter = pXbusList.begin();
- l_xbusIter != pXbusList.end();
- ++l_xbusIter)
+ // Iterate through all XBUS chiplets
+ for (auto & l_Target : l_TargetList)
{
- TARGETING::Target * pTarTarget = *l_xbusIter;
-
// map Targeting Type to fapi2 Type
- Target<fapi2::TARGET_TYPE_XBUS> fapi2_Target( pTarTarget);
+ Target<fapi2::TARGET_TYPE_XBUS> fapi2_Target( l_Target);
l_chiplet_id = fapi2_Target.getChipletNumber();
FAPI_DBG("testVerifyXbusChipletNum HUID: %.8X, ChipletId: %.8X",
- TARGETING::get_huid(pTarTarget),
+ TARGETING::get_huid(l_Target),
l_chiplet_id);
+ // XBUS 0,1 maps to pervasive id 0x06
if (l_chiplet_id != START_XBUS_CHIPLET_NUM)
{
TS_FAIL("testVerifyXbusChipletNum: Mismatch - Expected: %.8X:, Found: %.8X",
@@ -336,51 +543,47 @@ class Fapi2GetChipletNum : public CxxTest::TestSuite
void testVerifyPervChipletNum()
{
uint8_t l_chiplet_id = 0;
- uint8_t chipUnit = 0;
+ uint8_t l_chip_unit = 0;
FAPI_INF("Start testVerifyPervChipletNum");
do
{
- // find the unit
+ // find all PERV units
TARGETING::Target * pSys;
TARGETING::targetService().getTopLevelTarget(pSys);
TARGETING::PredicateCTM predPerv(TARGETING::CLASS_UNIT,
TARGETING::TYPE_PERV);
- TARGETING::TargetHandleList pPervList;
- TARGETING::targetService().getAssociated( pPervList, pSys,
+ TARGETING::TargetHandleList l_TargetList;
+ TARGETING::targetService().getAssociated( l_TargetList, pSys,
TARGETING::TargetService::CHILD,
TARGETING::TargetService::ALL,
&predPerv );
- if (pPervList.empty())
+ if (l_TargetList.empty())
{
- TS_FAIL("testVerifyPervChipletNum: empty pPervList");
+ TS_FAIL("testVerifyPervChipletNum: empty l_TargetList");
break;
}
- // Iterate through present procs
- for (TARGETING::TargetHandleList::const_iterator
- l_pervIter = pPervList.begin();
- l_pervIter != pPervList.end();
- ++l_pervIter)
+ // Iterate through all PERV chiplets
+ for (auto & l_Target : l_TargetList)
{
- TARGETING::Target * pTarTarget = *l_pervIter;
-
// map Targeting Type to fapi2 Type
- Target<fapi2::TARGET_TYPE_PERV> fapi2_Target( pTarTarget);
+ Target<fapi2::TARGET_TYPE_PERV> fapi2_Target( l_Target);
l_chiplet_id = fapi2_Target.getChipletNumber();
FAPI_DBG("testVerifyPervChipletNum HUID: %.8X, ChipletId: %.8X",
- TARGETING::get_huid(pTarTarget),
+ TARGETING::get_huid(l_Target),
l_chiplet_id);
- chipUnit = pTarTarget->getAttr<TARGETING::ATTR_CHIP_UNIT>();
+ // PERV units and chiplet ids are same
+ l_chip_unit = l_Target->getAttr<TARGETING::ATTR_CHIP_UNIT>();
- if (l_chiplet_id != chipUnit)
+ if (l_chiplet_id != l_chip_unit)
{
TS_FAIL("testVerifyPervChipletNum: Mismatch - Expected: %.8X:, Found: %.8X",
- chipUnit, l_chiplet_id);
+ l_chip_unit, l_chiplet_id);
break;
}
}
@@ -392,47 +595,43 @@ class Fapi2GetChipletNum : public CxxTest::TestSuite
{
uint8_t l_chiplet_id = 0;
uint8_t l_exp_chiplet_id = 0;
- uint8_t chipUnit = 0;
+ uint8_t l_chip_unit = 0;
FAPI_INF("Start testVerifyEQChipletNum");
do
{
- // find the unit
+ // find all EQ units`
TARGETING::Target * pSys;
TARGETING::targetService().getTopLevelTarget(pSys);
TARGETING::PredicateCTM predEq(TARGETING::CLASS_UNIT,
TARGETING::TYPE_EQ);
- TARGETING::TargetHandleList pEqList;
- TARGETING::targetService().getAssociated( pEqList, pSys,
+ TARGETING::TargetHandleList l_TargetList;
+ TARGETING::targetService().getAssociated( l_TargetList, pSys,
TARGETING::TargetService::CHILD,
TARGETING::TargetService::ALL,
&predEq );
- if (pEqList.empty())
+ if (l_TargetList.empty())
{
- TS_FAIL("testVerifyEQChipletNum: empty pEqList");
+ TS_FAIL("testVerifyEQChipletNum: empty l_TargetList");
break;
}
- // Iterate through present procs
- for (TARGETING::TargetHandleList::const_iterator
- l_eqIter = pEqList.begin();
- l_eqIter != pEqList.end();
- ++l_eqIter)
+ // Iterate through all EQ chiplets
+ for (auto & l_Target : l_TargetList)
{
- TARGETING::Target * pTarTarget = *l_eqIter;
-
// map Targeting Type to fapi2 Type
- Target<fapi2::TARGET_TYPE_EQ> fapi2_Target( pTarTarget);
+ Target<fapi2::TARGET_TYPE_EQ> fapi2_Target( l_Target);
l_chiplet_id = fapi2_Target.getChipletNumber();
FAPI_DBG("testVerifyEQChipletNum HUID: %.8X, ChipletId: %.8X",
- TARGETING::get_huid(pTarTarget),
+ TARGETING::get_huid(l_Target),
l_chiplet_id);
- chipUnit = pTarTarget->getAttr<TARGETING::ATTR_CHIP_UNIT>();
- l_exp_chiplet_id = chipUnit + START_EQ_CHIPLET_NUM;
+ // EQ 0..5 maps to pervasive ids 0x10..0x15
+ l_chip_unit = l_Target->getAttr<TARGETING::ATTR_CHIP_UNIT>();
+ l_exp_chiplet_id = l_chip_unit + START_EQ_CHIPLET_NUM;
if (l_chiplet_id != l_exp_chiplet_id)
{
@@ -453,50 +652,46 @@ class Fapi2GetChipletNum : public CxxTest::TestSuite
FAPI_INF("Start testVerifyEXChipletNum");
do
{
- // find the unit
+ // find all EX units
TARGETING::Target * pSys;
TARGETING::targetService().getTopLevelTarget(pSys);
TARGETING::PredicateCTM predEx(TARGETING::CLASS_UNIT,
TARGETING::TYPE_EX);
- TARGETING::TargetHandleList pExList;
- TARGETING::targetService().getAssociated( pExList, pSys,
+ TARGETING::TargetHandleList l_TargetList;
+ TARGETING::targetService().getAssociated( l_TargetList, pSys,
TARGETING::TargetService::CHILD,
TARGETING::TargetService::ALL,
&predEx );
- if (pExList.empty())
+ if (l_TargetList.empty())
{
- TS_FAIL("testVerifyEXChipletNum: empty pExList");
+ TS_FAIL("testVerifyEXChipletNum: empty l_TargetList");
break;
}
- // Iterate through present procs
- for (TARGETING::TargetHandleList::const_iterator
- l_exIter = pExList.begin();
- l_exIter != pExList.end();
- ++l_exIter)
+ // Iterate through all EXs
+ for (auto & l_Target : l_TargetList)
{
- TARGETING::Target * pTarTarget = *l_exIter;
-
// map Targeting Type to fapi2 Type
- Target<fapi2::TARGET_TYPE_EX> fapi2_Target( pTarTarget);
+ Target<fapi2::TARGET_TYPE_EX> fapi2_Target( l_Target);
l_chiplet_id = fapi2_Target.getChipletNumber();
FAPI_DBG("testVerifyEXChipletNum HUID: %.8X, ChipletId: %.8X",
- TARGETING::get_huid(pTarTarget),
+ TARGETING::get_huid(l_Target),
l_chiplet_id);
ReturnCode l_rc;
fapi2::ATTR_CHIP_UNIT_POS_Type chipPos = 0;
l_rc = FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS,
- pTarTarget,chipPos);
+ l_Target,chipPos);
if( l_rc )
{
TS_FAIL("testVerifyEXChipletNum: Error getting fapi::ATTR_CHIP_UNIT_POS");
break;
}
+ // EXs maps to pervasive id of their parents 0x10..0x15
l_exp_chiplet_id = (chipPos/2) + START_EQ_CHIPLET_NUM;
if (l_chiplet_id != l_exp_chiplet_id)
@@ -516,46 +711,42 @@ class Fapi2GetChipletNum : public CxxTest::TestSuite
uint8_t l_chiplet_id = 0;
uint8_t l_exp_chiplet_id = 0;
- uint8_t chipUnit = 0;
+ uint8_t l_chip_unit = 0;
do
{
- // find the unit
+ // find all cpu COREs
TARGETING::Target * pSys;
TARGETING::targetService().getTopLevelTarget(pSys);
TARGETING::PredicateCTM predCore(TARGETING::CLASS_UNIT,
TARGETING::TYPE_CORE);
- TARGETING::TargetHandleList pCoreList;
- TARGETING::targetService().getAssociated( pCoreList, pSys,
+ TARGETING::TargetHandleList l_TargetList;
+ TARGETING::targetService().getAssociated( l_TargetList, pSys,
TARGETING::TargetService::CHILD,
TARGETING::TargetService::ALL,
&predCore );
- if (pCoreList.empty())
+ if (l_TargetList.empty())
{
- TS_FAIL("testVerifyCoreChipletNum: empty pCoreList");
+ TS_FAIL("testVerifyCoreChipletNum: empty l_TargetList");
break;
}
- // Iterate through present cores
- for (TARGETING::TargetHandleList::const_iterator
- l_coreIter = pCoreList.begin();
- l_coreIter != pCoreList.end();
- ++l_coreIter)
+ // Iterate through all cores
+ for (auto & l_Target : l_TargetList)
{
- TARGETING::Target * pTarTarget = *l_coreIter;
-
// map Targeting Type to fapi2 Type
- Target<fapi2::TARGET_TYPE_CORE> fapi2_Target( pTarTarget);
+ Target<fapi2::TARGET_TYPE_CORE> fapi2_Target( l_Target);
l_chiplet_id = fapi2_Target.getChipletNumber();
FAPI_DBG("testVerifyCoreChipletNum HUID: %.8X, ChipletId: %.8X",
- TARGETING::get_huid(pTarTarget),
+ TARGETING::get_huid(l_Target),
l_chiplet_id);
- chipUnit = pTarTarget->getAttr<TARGETING::ATTR_CHIP_UNIT>();
- l_exp_chiplet_id = chipUnit + START_CORE_CHIPLET_NUM;
+ // Processor Core 0..23 maps to pervasive ids 0x20..0x37
+ l_chip_unit = l_Target->getAttr<TARGETING::ATTR_CHIP_UNIT>();
+ l_exp_chiplet_id = l_chip_unit + START_CORE_CHIPLET_NUM;
if (l_chiplet_id != l_exp_chiplet_id)
{
@@ -596,6 +787,14 @@ class Fapi2GetChipletNum : public CxxTest::TestSuite
testVerifyMcaChipletNum();
+ testVerifyCappChipletNum();
+
+ testVerifyNvChipletNum();
+
+ testVerifyPecChipletNum();
+
+ testVerifyiPhbChipletNum();
+
} while(0);
FAPI_DBG("test_fapi2ChipletNum Test Complete.");
} // end test_fapi2ChipletNum()
diff --git a/src/usr/fapi2/test/fapi2TestUtils.H b/src/usr/fapi2/test/fapi2TestUtils.H
index ccc90146d..937af56f3 100644
--- a/src/usr/fapi2/test/fapi2TestUtils.H
+++ b/src/usr/fapi2/test/fapi2TestUtils.H
@@ -48,9 +48,20 @@
// non-core and non-cache chiplet ids
#define START_PERV_CHIPLET_NUM 0x01
+// CAPI Unit(0,1 => 0x02, 0x04)
+#define START_CAPP_CHIPLET_NUM 0x02
+// NV (0, 1 => 0x05)
+#define START_NV_CHIPLET_NUM 0x05
+// XBUS (0, 1 => 0x6)
#define START_XBUS_CHIPLET_NUM 0x06
+// MCBIST (0, 1 => 0x07, 0x08)
#define START_MCBIST_CHIPLET_NUM 0x07
+// OBUS (0, 3 => 0x09, 0x0C)
#define START_OBUS_CHIPLET_NUM 0x09
+// PEC (0, 1, 2 => 0x0D, 0x0E, 0x0F)
+#define START_PEC_0_CHIPLET_NUM 0x0D
+#define START_PEC_1_CHIPLET_NUM 0x0E
+#define START_PEC_2_CHIPLET_NUM 0x0F
// All Cache Chiplets
#define START_EQ_CHIPLET_NUM 0x10
@@ -93,7 +104,7 @@ enum PERVASIVE_CHILDREN {
PERV_XBUS_CHILDREN = 2,
PERV_OBUS_CHILDREN = 1,
PERV_CAPP_CHILDREN = 1,
- PERV_NV_CHILDREN = 1,
+ PERV_NV_CHILDREN = 2,
PERV_MCBIST_CHILDREN = 1,
PERV_MCS_CHILDREN = 2,
PERV_MCA_CHILDREN = 4,
diff --git a/src/usr/targeting/common/genHwsvMrwXml.pl b/src/usr/targeting/common/genHwsvMrwXml.pl
index 3dfb06d6f..632ec4f4b 100755
--- a/src/usr/targeting/common/genHwsvMrwXml.pl
+++ b/src/usr/targeting/common/genHwsvMrwXml.pl
@@ -4605,6 +4605,9 @@ sub generate_pec
my $affinityPath = "affinity:sys-$sys/node-$node/proc-$proc/pec-$pec";
+ #Chiplet IDs for pec 0,1,2 => 0xd, 0xe, 0xf
+ my $chipletId = sprintf("0x%X",($pec + 0xd));
+
print "
<targetInstance>
<id>sys${sys}node${node}proc${proc}pec$pec</id>
@@ -4634,6 +4637,10 @@ sub generate_pec
<attribute>
<id>CHIP_UNIT</id>
<default>$pec</default>
+ </attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>$chipletId</default>
</attribute>";
addPervasiveParentLink($sys,$node,$proc,$pec,"pec");
@@ -4667,6 +4674,11 @@ sub generate_phb_chiplet
$phb = $phb - 3;
}
+ #Chiplet IDs for pec0phb0 => 0xd
+ #Chiplet IDs for pec1phb1, pec1phb2 => 0xe
+ #Chiplet IDs for pec2phb3, pec2phb4, pec2phb5 => 0xf
+ my $chipletId = sprintf("0x%X",($pec + 0xd));
+
my $lognode;
my $logid;
for (my $j = 0; $j <= $#chipIDs; $j++)
@@ -4713,6 +4725,10 @@ sub generate_phb_chiplet
<attribute>
<id>CHIP_UNIT</id>
<default>$phbChipUnit</default>
+ </attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>$chipletId</default>
</attribute>";
addPervasiveParentLink($sys,$node,$proc,$phbChipUnit,"phb");
@@ -5067,6 +5083,9 @@ sub generate_capp
my $fapi_name = sprintf("pu.capp:k0:n%d:s0:p%02d:c%d", $node, $proc,$capp);
my $affinityPath = "affinity:sys-$sys/node-$node/proc-$proc/capp-$capp";
+ #Chiplet IDs for capp 0 => 0x2 and capp 1 => 0x4
+ my $chipletId = sprintf("0x%X",(($capp + 1) * 2));
+
print "
<targetInstance>
<id>sys${sys}node${node}proc${proc}capp$capp</id>
@@ -5096,6 +5115,10 @@ sub generate_capp
<attribute>
<id>CHIP_UNIT</id>
<default>$capp</default>
+ </attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>$chipletId</default>
</attribute>";
addPervasiveParentLink($sys,$node,$proc,$capp,"capp");
@@ -5224,6 +5247,9 @@ sub generate_a_nv
my $fapi_name = "NA"; # NV not FAPI target
+ #Chiplet IDs for nv 0,1 => 0x5
+ my $chipletId = sprintf("0x%X",(0x5));
+
print "
<targetInstance>
<id>sys${sys}node${node}proc${proc}nv${nv}</id>
@@ -5249,6 +5275,10 @@ sub generate_a_nv
<attribute>
<id>CHIP_UNIT</id>
<default>$nv</default>
+ </attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>$chipletId</default>
</attribute>";
addPervasiveParentLink($sys,$node,$proc,$nv,"nv");
diff --git a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
index 79e84e306..4b923a599 100644
--- a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
+++ b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
@@ -2537,6 +2537,10 @@
<default>0</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xD</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-13</default>
</attribute>
@@ -2570,6 +2574,10 @@
<default>1</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xE</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-14</default>
</attribute>
@@ -2603,6 +2611,10 @@
<default>2</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xF</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-15</default>
</attribute>
@@ -2637,6 +2649,10 @@
<default>0</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xD</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-13</default>
</attribute>
@@ -2671,6 +2687,10 @@
<default>1</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xE</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-14</default>
</attribute>
@@ -2704,6 +2724,10 @@
<default>2</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xE</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-14</default>
</attribute>
@@ -2738,6 +2762,10 @@
<default>3</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xF</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-15</default>
</attribute>
@@ -2771,6 +2799,10 @@
<default>4</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xF</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-15</default>
</attribute>
@@ -2804,6 +2836,10 @@
<default>5</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xF</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-15</default>
</attribute>
@@ -2909,6 +2945,43 @@
<default>0</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x05</default>
+ </attribute>
+ <attribute>
+ <id>PARENT_PERVASIVE</id>
+ <default>physical:sys-0/node-0/proc-0/perv-5</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0proc0nv1</id>
+ <type>unit-nv-nimbus</type>
+ <attribute><id>HUID</id><default>0x00290001</default></attribute>
+ <attribute>
+ <id>FAPI_NAME</id><default>NA</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/proc-0/nv-1</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/nv-1</default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
+ <id>CHIP_UNIT</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x05</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-5</default>
</attribute>
@@ -4680,6 +4753,10 @@
<default>0</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-2</default>
</attribute>
@@ -4713,6 +4790,10 @@
<default>1</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-4</default>
</attribute>
@@ -7576,6 +7657,10 @@
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xD</default>
+ </attribute>
</targetInstance>
<targetInstance>
@@ -7613,6 +7698,10 @@
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xE</default>
+ </attribute>
</targetInstance>
<targetInstance>
@@ -7650,6 +7739,10 @@
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xF</default>
+ </attribute>
</targetInstance>
<targetInstance>
@@ -7687,6 +7780,10 @@
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xD</default>
+ </attribute>
</targetInstance>
<targetInstance>
@@ -7724,6 +7821,10 @@
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xE</default>
+ </attribute>
</targetInstance>
<targetInstance>
@@ -7761,6 +7862,10 @@
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xE</default>
+ </attribute>
</targetInstance>
<targetInstance>
@@ -7798,6 +7903,10 @@
<id>CHIP_UNIT</id>
<default>3</default>
</attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xF</default>
+ </attribute>
</targetInstance>
<targetInstance>
@@ -7835,6 +7944,10 @@
<id>CHIP_UNIT</id>
<default>4</default>
</attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xF</default>
+ </attribute>
</targetInstance>
<targetInstance>
@@ -7872,6 +7985,10 @@
<id>CHIP_UNIT</id>
<default>5</default>
</attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>0xF</default>
+ </attribute>
</targetInstance>
<targetInstance>
@@ -8050,7 +8167,7 @@
<targetInstance>
<id>sys0node0proc1nv0</id>
<type>unit-nv-nimbus</type>
- <attribute><id>HUID</id><default>0x00290001</default></attribute>
+ <attribute><id>HUID</id><default>0x00290002</default></attribute>
<attribute>
<id>FAPI_NAME</id><default>NA</default>
</attribute>
@@ -8064,13 +8181,50 @@
</attribute>
<attribute>
<id>ORDINAL_ID</id>
- <default>1</default>
+ <default>2</default>
</attribute>
<attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x05</default>
+ </attribute>
+ <attribute>
+ <id>PARENT_PERVASIVE</id>
+ <default>physical:sys-0/node-0/proc-1/perv-5</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0proc1nv1</id>
+ <type>unit-nv-nimbus</type>
+ <attribute><id>HUID</id><default>0x00290003</default></attribute>
+ <attribute>
+ <id>FAPI_NAME</id><default>NA</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/proc-1/nv-1</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-1/nv-1</default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
+ <id>CHIP_UNIT</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x05</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-1/perv-5</default>
</attribute>
@@ -10311,6 +10465,10 @@
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>2</default>
+ </attribute>
</targetInstance>
<targetInstance>
@@ -10348,6 +10506,10 @@
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>4</default>
+ </attribute>
</targetInstance>
<!-- ZZ n0p1 SBE units -->
diff --git a/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml b/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml
index 78fee6d6c..3e037c87e 100644
--- a/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml
+++ b/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml
@@ -2432,6 +2432,10 @@
<default>0</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x0D</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-13</default>
</attribute>
@@ -2465,6 +2469,10 @@
<default>1</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x0E</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-14</default>
</attribute>
@@ -2498,6 +2506,10 @@
<default>2</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x0F</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-15</default>
</attribute>
@@ -2532,6 +2544,10 @@
<default>0</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x0D</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-13</default>
</attribute>
@@ -2566,6 +2582,10 @@
<default>1</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x0E</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-14</default>
</attribute>
@@ -2599,6 +2619,10 @@
<default>2</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x0E</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-14</default>
</attribute>
@@ -2633,6 +2657,10 @@
<default>3</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x0F</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-15</default>
</attribute>
@@ -2666,6 +2694,10 @@
<default>4</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x0F</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-15</default>
</attribute>
@@ -2699,6 +2731,10 @@
<default>5</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x0F</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-15</default>
</attribute>
@@ -2804,6 +2840,10 @@
<default>0</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x05</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-5</default>
</attribute>
@@ -4575,6 +4615,10 @@
<default>0</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x2</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-2</default>
</attribute>
@@ -4608,6 +4652,10 @@
<default>1</default>
</attribute>
<attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x4</default>
+ </attribute>
+ <attribute>
<id>PARENT_PERVASIVE</id>
<default>physical:sys-0/node-0/proc-0/perv-4</default>
</attribute>
OpenPOWER on IntegriCloud