summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
authorMatt Derksen <mderkse1@us.ibm.com>2017-09-13 08:58:27 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-10-15 16:26:48 -0400
commita5d19110fd5dad891f8fe20c260fb7fb23051822 (patch)
treeeeeecdc372c8e6294fa74ed152e981b5c680fd20 /src/usr
parent54a809824656603dad56d67c8cab8946bfa43ecb (diff)
downloadtalos-hostboot-a5d19110fd5dad891f8fe20c260fb7fb23051822.tar.gz
talos-hostboot-a5d19110fd5dad891f8fe20c260fb7fb23051822.zip
Fix parent of OBUS_BRICK
- remove OPTICS_CONFIG_MODE from obus brick targets - remove FAPI_POS from cumulus obus bricks Change-Id: I7248bcf39526378fa5b8322a331beeeb33d4d2a4 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/46141 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: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Prachi Gupta <pragupta@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/hwas/common/deconfigGard.C37
-rw-r--r--src/usr/hwas/common/hwas.C10
-rw-r--r--src/usr/hwas/test/hwas1test.H11
-rwxr-xr-xsrc/usr/targeting/common/processMrw.pl11
-rw-r--r--src/usr/targeting/common/xmltohb/simics_CUMULUS.system.xml49
-rw-r--r--src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml218
-rw-r--r--src/usr/targeting/common/xmltohb/target_types.xml2
7 files changed, 119 insertions, 219 deletions
diff --git a/src/usr/hwas/common/deconfigGard.C b/src/usr/hwas/common/deconfigGard.C
index a781f460a..d1afdda9f 100644
--- a/src/usr/hwas/common/deconfigGard.C
+++ b/src/usr/hwas/common/deconfigGard.C
@@ -1651,7 +1651,7 @@ void DeconfigGard::_deconfigureByAssoc(
// and we're done, so break;
break;
}
-
+
case TYPE_MI:
{
// get parent MC
@@ -1685,7 +1685,7 @@ void DeconfigGard::_deconfigureByAssoc(
// and we're done, so break;
break;
}
-
+
case TYPE_DMI:
{
// get parent MI
@@ -1747,8 +1747,8 @@ void DeconfigGard::_deconfigureByAssoc(
_deconfigureByAssoc(const_cast<Target &> (*l_parentMembuf),
i_errlEid, i_deconfigRule);
}
-
- // and we're done, so break;
+
+ // and we're done, so break;
break;
} // TYPE_MBA
@@ -1959,27 +1959,24 @@ void DeconfigGard::_deconfigureByAssoc(
//Get the parent proc associated with this npu
auto l_proc = getParentChip(&i_target);
- //Get all the obus brick children associated with this proc
- PredicateCTM l_obrickFilter (CLASS_UNIT, TYPE_OBUS_BRICK);
- PredicateHwas l_predPres;
- l_predPres.present(true);
- PredicatePostfixExpr l_presentObricks;
- l_presentObricks.push(&l_obrickFilter).push(&l_predPres).And();
-
- TargetHandleList l_obrickList;
- targetService().getAssociated(l_obrickList, l_proc,
- TargetService::CHILD_BY_AFFINITY,
- TargetService::ALL, &l_presentObricks);
+ //Get all the obus children associated with this proc
+ TargetHandleList pChildObusList;
+ getChildAffinityTargetsByState(pChildObusList, l_proc,
+ CLASS_UNIT, TYPE_OBUS, UTIL_FILTER_PRESENT);
- for (auto l_obrick : l_obrickList)
+ for (auto l_obus : pChildObusList)
{
- //deconfigure each obrick that is non-smp
- if (l_obrick->getAttr<ATTR_OPTICS_CONFIG_MODE>() !=
+ // NPU controls non-smp obus,
+ // so need to mark the non-smp ones as not functional
+ // when the NPU is bad
+
+ //deconfigure each obus that is non-smp
+ if (l_obus->getAttr<ATTR_OPTICS_CONFIG_MODE>() !=
OPTICS_CONFIG_MODE_SMP)
{
- _deconfigureTarget(*l_obrick,
+ _deconfigureTarget(*l_obus,
i_errlEid, NULL, i_deconfigRule);
- _deconfigureByAssoc(*l_obrick,
+ _deconfigureByAssoc(*l_obus,
i_errlEid,i_deconfigRule);
}
}
diff --git a/src/usr/hwas/common/hwas.C b/src/usr/hwas/common/hwas.C
index c2636baf7..c8af71942 100644
--- a/src/usr/hwas/common/hwas.C
+++ b/src/usr/hwas/common/hwas.C
@@ -1066,8 +1066,13 @@ bool isDescFunctional(const TARGETING::TargetHandle_t &i_desc,
else
if (i_desc->getAttr<ATTR_TYPE>() == TYPE_OBUS_BRICK)
{
- //If NPU is bad and Bricks are non-SMP, then mark them bad
- if ((i_desc->getAttr<ATTR_OPTICS_CONFIG_MODE>()
+ auto obusType = TARGETING::TYPE_OBUS;
+ TARGETING::Target* l_obus_ptr = const_cast<TARGETING::Target*>(
+ getParent(i_desc, obusType));
+
+ //If NPU is bad and OBUS is non-SMP, then mark them bad
+ // Bit does not matter unless not in SMP mode
+ if ((l_obus_ptr->getAttr<ATTR_OPTICS_CONFIG_MODE>()
!= OPTICS_CONFIG_MODE_SMP) &&
((i_pgData[VPD_CP00_PG_N3_INDEX] & VPD_CP00_PG_N3_NPU) != 0))
{
@@ -1079,7 +1084,6 @@ bool isDescFunctional(const TARGETING::TargetHandle_t &i_desc,
(i_pgData[VPD_CP00_PG_N3_INDEX] &
~VPD_CP00_PG_N3_NPU));
l_descFunctional = false;
-
}
}
else
diff --git a/src/usr/hwas/test/hwas1test.H b/src/usr/hwas/test/hwas1test.H
index 4b1e9ccd0..b11dcfad3 100644
--- a/src/usr/hwas/test/hwas1test.H
+++ b/src/usr/hwas/test/hwas1test.H
@@ -1652,14 +1652,19 @@ public:
case TYPE_OBUS_BRICK:
{
//Two cases here:
- //OBRICK==SMP --> Target should be present regardless of PG
- //OBRICK!=SMP --> Target should follow PG
+ //OBUS==SMP --> Target should be present regardless of PG
+ //OBUS!=SMP --> Target should follow PG
//marking PG bad
pgData[VPD_CP00_PG_N3_INDEX] |=
(uint16_t)VPD_CP00_PG_N3_NPU;
+ // get parent OBUS and check OPTICS_CONFIG_MODE
+ auto obusType = TARGETING::TYPE_OBUS;
+ TARGETING::Target* l_obus_ptr =
+ const_cast<TARGETING::Target*>(
+ getParent(pDesc, obusType));
ATTR_OPTICS_CONFIG_MODE_type config_mode =
- pDesc->getAttr<ATTR_OPTICS_CONFIG_MODE>();
+ l_obus_ptr->getAttr<ATTR_OPTICS_CONFIG_MODE>();
if (OPTICS_CONFIG_MODE_SMP == config_mode)
{
diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
index 033e921c7..af34703ed 100755
--- a/src/usr/targeting/common/processMrw.pl
+++ b/src/usr/targeting/common/processMrw.pl
@@ -1243,11 +1243,6 @@ sub processObus
foreach my $obrick (@{ $targetObj->getTargetChildren($target) })
{
$targetObj->setAttribute($obrick, "OBUS_SLOT_INDEX", -1);
- my $enum_val = $targetObj->getAttribute($obrick,"OPTICS_CONFIG_MODE");
- if ( $enum_val =~ /NVLINK/i)
- {
- $targetObj->setAttribute($obrick,"OPTICS_CONFIG_MODE","NV");
- }
}
}
else
@@ -1293,12 +1288,6 @@ sub processObus
$targetObj->setAttribute($obrick, "OBUS_SLOT_INDEX", -1);
}
-
- my $enum_val = $targetObj->getAttribute($obrick,"OPTICS_CONFIG_MODE");
- if ( $enum_val =~ /NVLINK/i)
- {
- $targetObj->setAttribute($obrick,"OPTICS_CONFIG_MODE","NV");
- }
}
}
}
diff --git a/src/usr/targeting/common/xmltohb/simics_CUMULUS.system.xml b/src/usr/targeting/common/xmltohb/simics_CUMULUS.system.xml
index 411ef82bb..c1b825433 100644
--- a/src/usr/targeting/common/xmltohb/simics_CUMULUS.system.xml
+++ b/src/usr/targeting/common/xmltohb/simics_CUMULUS.system.xml
@@ -6666,10 +6666,7 @@
<id>FAPI_NAME</id>
<default>pu.obus_brick:k0:n0:s0:p00:c0</default>
</attribute>
- <attribute>
- <id>FAPI_POS</id>
- <default>0</default>
- </attribute>
+
<attribute>
<id>HUID</id>
<default>0x00420000</default>
@@ -6750,10 +6747,6 @@
<default>pu.obus_brick:k0:n0:s0:p00:c1</default>
</attribute>
<attribute>
- <id>FAPI_POS</id>
- <default>1</default>
- </attribute>
- <attribute>
<id>HUID</id>
<default>0x00420001</default>
</attribute>
@@ -6833,10 +6826,6 @@
<default>pu.obus_brick:k0:n0:s0:p00:c2</default>
</attribute>
<attribute>
- <id>FAPI_POS</id>
- <default>2</default>
- </attribute>
- <attribute>
<id>HUID</id>
<default>0x00420002</default>
</attribute>
@@ -6916,10 +6905,6 @@
<default>pu.obus_brick:k0:n0:s0:p00:c3</default>
</attribute>
<attribute>
- <id>FAPI_POS</id>
- <default>3</default>
- </attribute>
- <attribute>
<id>HUID</id>
<default>0x00420003</default>
</attribute>
@@ -6999,10 +6984,6 @@
<default>pu.obus_brick:k0:n0:s0:p00:c4</default>
</attribute>
<attribute>
- <id>FAPI_POS</id>
- <default>4</default>
- </attribute>
- <attribute>
<id>HUID</id>
<default>0x00420004</default>
</attribute>
@@ -7082,10 +7063,6 @@
<default>pu.obus_brick:k0:n0:s0:p00:c5</default>
</attribute>
<attribute>
- <id>FAPI_POS</id>
- <default>5</default>
- </attribute>
- <attribute>
<id>HUID</id>
<default>0x00420005</default>
</attribute>
@@ -7165,10 +7142,6 @@
<default>pu.obus_brick:k0:n0:s0:p00:c6</default>
</attribute>
<attribute>
- <id>FAPI_POS</id>
- <default>6</default>
- </attribute>
- <attribute>
<id>HUID</id>
<default>0x00420006</default>
</attribute>
@@ -7248,10 +7221,6 @@
<default>pu.obus_brick:k0:n0:s0:p00:c7</default>
</attribute>
<attribute>
- <id>FAPI_POS</id>
- <default>7</default>
- </attribute>
- <attribute>
<id>HUID</id>
<default>0x00420007</default>
</attribute>
@@ -7331,10 +7300,6 @@
<default>pu.obus_brick:k0:n0:s0:p00:c8</default>
</attribute>
<attribute>
- <id>FAPI_POS</id>
- <default>8</default>
- </attribute>
- <attribute>
<id>HUID</id>
<default>0x00420008</default>
</attribute>
@@ -7414,10 +7379,6 @@
<default>pu.obus_brick:k0:n0:s0:p00:c9</default>
</attribute>
<attribute>
- <id>FAPI_POS</id>
- <default>9</default>
- </attribute>
- <attribute>
<id>HUID</id>
<default>0x00420009</default>
</attribute>
@@ -7497,10 +7458,6 @@
<default>pu.obus_brick:k0:n0:s0:p00:c10</default>
</attribute>
<attribute>
- <id>FAPI_POS</id>
- <default>10</default>
- </attribute>
- <attribute>
<id>HUID</id>
<default>0x0042000A</default>
</attribute>
@@ -7580,10 +7537,6 @@
<default>pu.obus_brick:k0:n0:s0:p00:c11</default>
</attribute>
<attribute>
- <id>FAPI_POS</id>
- <default>11</default>
- </attribute>
- <attribute>
<id>HUID</id>
<default>0x0042000B</default>
</attribute>
diff --git a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
index e9f71afd1..fe90c3f8e 100644
--- a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
+++ b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
@@ -560,7 +560,7 @@
<default>physical:sys-0/node-0/proc-0/perv-17</default>
</attribute>
<!--TODO RTC:144077 POUNDV ATTRs are temporarily set to 1 for testing
- purposes if we have a way to do attr overrides during standalone simics
+ purposes if we have a way to do attr overrides during standalone simics
then we can get rid of these poundv attributes for this EQ-->
<attribute>
<id>POUNDV_BUCKET_NUM</id>
@@ -3183,48 +3183,48 @@
</targetInstance>
<targetInstance>
- <id>sys0node0proc0npu0</id>
- <type>unit-npu-nimbus</type>
- <attribute>
- <id>AFFINITY_PATH</id>
- <default>affinity:sys-0/node-0/proc-0/npu-0</default>
- </attribute>
- <attribute>
- <id>CHIPLET_ID</id>
- <default>0x05</default>
- </attribute>
- <attribute>
- <id>CHIP_UNIT</id>
- <default>0</default>
- </attribute>
- <attribute>
- <id>CLASS</id>
- <default>UNIT</default>
- </attribute>
- <attribute>
- <id>FAPI_NAME</id>
- <default>NA</default>
- </attribute>
- <attribute>
- <id>HUID</id>
- <default>0x00440000</default>
- </attribute>
- <attribute>
- <id>ORDINAL_ID</id>
- <default>0</default>
- </attribute>
- <attribute>
- <id>PARENT_PERVASIVE</id>
- <default>physical:sys-0/node-0/proc-0/perv-5</default>
- </attribute>
- <attribute>
- <id>PHYS_PATH</id>
- <default>physical:sys-0/node-0/proc-0/npu-0</default>
- </attribute>
- <attribute>
- <id>TYPE</id>
- <default>NPU</default>
- </attribute>
+ <id>sys0node0proc0npu0</id>
+ <type>unit-npu-nimbus</type>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/npu-0</default>
+ </attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x05</default>
+ </attribute>
+ <attribute>
+ <id>CHIP_UNIT</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>CLASS</id>
+ <default>UNIT</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>NA</default>
+ </attribute>
+ <attribute>
+ <id>HUID</id>
+ <default>0x00440000</default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>PARENT_PERVASIVE</id>
+ <default>physical:sys-0/node-0/proc-0/perv-5</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/proc-0/npu-0</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>NPU</default>
+ </attribute>
</targetInstance>
<!-- Nimbus n0p0 obus-brick units -->
<targetInstance>
@@ -3247,10 +3247,6 @@
<default>0</default>
</attribute>
<attribute>
- <id>OPTICS_CONFIG_MODE</id>
- <default>NV</default>
- </attribute>
- <attribute>
<id>CHIP_UNIT</id>
<default>0</default>
</attribute>
@@ -3284,10 +3280,6 @@
<default>1</default>
</attribute>
<attribute>
- <id>OPTICS_CONFIG_MODE</id>
- <default>NV</default>
- </attribute>
- <attribute>
<id>CHIP_UNIT</id>
<default>1</default>
</attribute>
@@ -3321,10 +3313,6 @@
<default>2</default>
</attribute>
<attribute>
- <id>OPTICS_CONFIG_MODE</id>
- <default>NV</default>
- </attribute>
- <attribute>
<id>CHIP_UNIT</id>
<default>2</default>
</attribute>
@@ -3358,10 +3346,6 @@
<default>9</default>
</attribute>
<attribute>
- <id>OPTICS_CONFIG_MODE</id>
- <default>NV</default>
- </attribute>
- <attribute>
<id>CHIP_UNIT</id>
<default>9</default>
</attribute>
@@ -3395,10 +3379,6 @@
<default>10</default>
</attribute>
<attribute>
- <id>OPTICS_CONFIG_MODE</id>
- <default>NV</default>
- </attribute>
- <attribute>
<id>CHIP_UNIT</id>
<default>10</default>
</attribute>
@@ -3432,10 +3412,6 @@
<default>11</default>
</attribute>
<attribute>
- <id>OPTICS_CONFIG_MODE</id>
- <default>NV</default>
- </attribute>
- <attribute>
<id>CHIP_UNIT</id>
<default>11</default>
</attribute>
@@ -8620,10 +8596,6 @@
<default>12</default>
</attribute>
<attribute>
- <id>OPTICS_CONFIG_MODE</id>
- <default>NV</default>
- </attribute>
- <attribute>
<id>CHIP_UNIT</id>
<default>12</default>
</attribute>
@@ -8657,10 +8629,6 @@
<default>13</default>
</attribute>
<attribute>
- <id>OPTICS_CONFIG_MODE</id>
- <default>NV</default>
- </attribute>
- <attribute>
<id>CHIP_UNIT</id>
<default>13</default>
</attribute>
@@ -8694,10 +8662,6 @@
<default>14</default>
</attribute>
<attribute>
- <id>OPTICS_CONFIG_MODE</id>
- <default>NV</default>
- </attribute>
- <attribute>
<id>CHIP_UNIT</id>
<default>14</default>
</attribute>
@@ -8731,10 +8695,6 @@
<default>15</default>
</attribute>
<attribute>
- <id>OPTICS_CONFIG_MODE</id>
- <default>NV</default>
- </attribute>
- <attribute>
<id>CHIP_UNIT</id>
<default>15</default>
</attribute>
@@ -8768,10 +8728,6 @@
<default>16</default>
</attribute>
<attribute>
- <id>OPTICS_CONFIG_MODE</id>
- <default>NV</default>
- </attribute>
- <attribute>
<id>CHIP_UNIT</id>
<default>16</default>
</attribute>
@@ -8805,10 +8761,6 @@
<default>17</default>
</attribute>
<attribute>
- <id>OPTICS_CONFIG_MODE</id>
- <default>NV</default>
- </attribute>
- <attribute>
<id>CHIP_UNIT</id>
<default>17</default>
</attribute>
@@ -8823,48 +8775,48 @@
</targetInstance>
<targetInstance>
- <id>sys0node0proc1npu0</id>
- <type>unit-npu-nimbus</type>
- <attribute>
- <id>AFFINITY_PATH</id>
- <default>affinity:sys-0/node-0/proc-1/npu-0</default>
- </attribute>
- <attribute>
- <id>CHIPLET_ID</id>
- <default>0x05</default>
- </attribute>
- <attribute>
- <id>CHIP_UNIT</id>
- <default>0</default>
- </attribute>
- <attribute>
- <id>CLASS</id>
- <default>UNIT</default>
- </attribute>
- <attribute>
- <id>FAPI_NAME</id>
- <default>NA</default>
- </attribute>
- <attribute>
- <id>HUID</id>
- <default>0x00440001</default>
- </attribute>
- <attribute>
- <id>ORDINAL_ID</id>
- <default>0</default>
- </attribute>
- <attribute>
- <id>PARENT_PERVASIVE</id>
- <default>physical:sys-0/node-0/proc-1/perv-5</default>
- </attribute>
- <attribute>
- <id>PHYS_PATH</id>
- <default>physical:sys-0/node-0/proc-1/npu-0</default>
- </attribute>
- <attribute>
- <id>TYPE</id>
- <default>NPU</default>
- </attribute>
+ <id>sys0node0proc1npu0</id>
+ <type>unit-npu-nimbus</type>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-1/npu-0</default>
+ </attribute>
+ <attribute>
+ <id>CHIPLET_ID</id>
+ <default>0x05</default>
+ </attribute>
+ <attribute>
+ <id>CHIP_UNIT</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>CLASS</id>
+ <default>UNIT</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>NA</default>
+ </attribute>
+ <attribute>
+ <id>HUID</id>
+ <default>0x00440001</default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>PARENT_PERVASIVE</id>
+ <default>physical:sys-0/node-0/proc-1/perv-5</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/proc-1/npu-0</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>NPU</default>
+ </attribute>
</targetInstance>
<targetInstance>
<id>sys0node0proc1ppe0</id>
diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
index 8bb056751..978e79238 100644
--- a/src/usr/targeting/common/xmltohb/target_types.xml
+++ b/src/usr/targeting/common/xmltohb/target_types.xml
@@ -1692,7 +1692,7 @@
Cumulus: 3 per OBUS -->
<targetType>
<id>unit-obus-brick-power9</id>
- <parent>unit-obus-power9</parent>
+ <parent>unit</parent>
<attribute>
<id>TYPE</id>
<default>OBUS_BRICK</default>
OpenPOWER on IntegriCloud