summaryrefslogtreecommitdiffstats
path: root/src/usr/hwas
diff options
context:
space:
mode:
authorMatt Derksen <mderkse1@us.ibm.com>2019-01-10 15:08:14 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-01-11 22:56:02 -0600
commit386e53387a30a77bc9e45e1906e62acce592476f (patch)
tree534a4a25a3cc0453ce50dab837d74c5db1ab7c90 /src/usr/hwas
parent42d89b657da16b2cf6eae627f294e4153e0f2ba2 (diff)
downloadblackbird-hostboot-386e53387a30a77bc9e45e1906e62acce592476f.tar.gz
blackbird-hostboot-386e53387a30a77bc9e45e1906e62acce592476f.zip
No parent rollup for OBUS children
HWSV code is deconfiguring either SMPGROUP or OBUS_BRICKS under the OBUS. Need to prevent the deconfigures from also deconfiguring the parent OBUS. Change-Id: Ibca2766009b63582fcfa537139a078bef3a58f47 CQ:SW454103 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70322 Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> 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: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/hwas')
-rw-r--r--src/usr/hwas/common/deconfigGard.C35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/usr/hwas/common/deconfigGard.C b/src/usr/hwas/common/deconfigGard.C
index e78cdee8f..4dc158dbc 100644
--- a/src/usr/hwas/common/deconfigGard.C
+++ b/src/usr/hwas/common/deconfigGard.C
@@ -1783,7 +1783,7 @@ void DeconfigGard::_deconfigParentAssoc(TARGETING::Target & i_target,
// Handles bus endpoint (TYPE_XBUS, TYPE_ABUS, TYPE_PSI) and
// memory (TYPE_MEMBUF, TYPE_MBA, TYPE_DIMM)
// chip (TYPE_EQ, TYPE_EX, TYPE_CORE)
- // obus specific (TYPE_OBUS, TYPE_NPU, TYPE_SMPGROUP)
+ // obus specific (TYPE_OBUS, TYPE_NPU, TYPE_SMPGROUP, TYPE_OBUS_BRICK)
// deconfigureByAssociation rules
switch (l_targetType)
{
@@ -1929,6 +1929,39 @@ void DeconfigGard::_deconfigParentAssoc(TARGETING::Target & i_target,
break;
}
+ case TYPE_OBUS_BRICK:
+ {
+ // Other errors may have affected parent state so use
+ // UTIL_FILTER_ALL
+ TargetHandleList pParentObusList;
+ getParentAffinityTargetsByState(pParentObusList, &i_target,
+ CLASS_UNIT, TYPE_OBUS,
+ UTIL_FILTER_ALL);
+ HWAS_ASSERT((pParentObusList.size() == 1),
+ "HWAS _deconfigParentAssoc: pParentObusList != 1");
+
+ // Still allow for Parent OBUS deconfig if
+ // no more functional children
+ // (i.e. Don't knock it out if functional SMPGROUP child found)
+
+ // Need this because HWSV will knock out all OBUS_BRICKS,
+ // but leave the SMPGROUP children under OBUS targets
+ Target *l_parentObus = pParentObusList[0];
+
+ // General predicate to determine if target is functional
+ PredicateIsFunctional isFunctional;
+ if ((isFunctional(l_parentObus)) &&
+ (!anyChildFunctional(*l_parentObus)))
+ {
+
+ _deconfigureTarget(*l_parentObus,
+ i_errlEid, NULL, i_deconfigRule);
+ _deconfigureByAssoc(*l_parentObus,
+ i_errlEid,i_deconfigRule);
+ }
+ break;
+ } // TYPE_OBUS_BRICK
+
case TYPE_NPU:
{
//Get the parent proc associated with this npu
OpenPOWER on IntegriCloud