diff options
| author | Matt Derksen <mderkse1@us.ibm.com> | 2019-01-10 15:08:14 -0600 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-01-11 22:56:02 -0600 |
| commit | 386e53387a30a77bc9e45e1906e62acce592476f (patch) | |
| tree | 534a4a25a3cc0453ce50dab837d74c5db1ab7c90 /src/usr/hwas | |
| parent | 42d89b657da16b2cf6eae627f294e4153e0f2ba2 (diff) | |
| download | blackbird-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.C | 35 |
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 |

