diff options
author | Bill Hoffa <wghoffa@us.ibm.com> | 2016-08-02 15:21:55 -0500 |
---|---|---|
committer | Matthew A. Ploetz <maploetz@us.ibm.com> | 2016-08-31 14:35:36 -0400 |
commit | c3abedc596aab0e0295bbac7b06ff4bb94519744 (patch) | |
tree | 26fe14c24f246e8cc7872ac7ed1544828ee05c0a /src/usr/hwas/common/deconfigGard.C | |
parent | bdaf313c6276e90de72c73f67ced82d5a9a93837 (diff) | |
download | talos-hostboot-c3abedc596aab0e0295bbac7b06ff4bb94519744.tar.gz talos-hostboot-c3abedc596aab0e0295bbac7b06ff4bb94519744.zip |
P9 Deconfigure Functionality for PEC + PHB Targets
Change-Id: I8b46a7919fcdab79ec64f0dfebf998d061948dc2
RTC: 118806
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/28730
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Matthew A. Ploetz <maploetz@us.ibm.com>
Diffstat (limited to 'src/usr/hwas/common/deconfigGard.C')
-rw-r--r-- | src/usr/hwas/common/deconfigGard.C | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/usr/hwas/common/deconfigGard.C b/src/usr/hwas/common/deconfigGard.C index 1a50f0661..abe5dcedd 100644 --- a/src/usr/hwas/common/deconfigGard.C +++ b/src/usr/hwas/common/deconfigGard.C @@ -1314,6 +1314,7 @@ void DeconfigGard::_deconfigureByAssoc( { TargetHandle_t pChild = *pChild_it; + HWAS_INF("_deconfigureByAssoc CHILD: %.8X", get_huid(pChild)); _deconfigureTarget(*pChild, i_errlEid, NULL, i_deconfigRule); // Deconfigure other Targets by association @@ -1731,6 +1732,28 @@ void DeconfigGard::_deconfigureByAssoc( i_errlEid, i_deconfigRule); break; } // TYPE_PORE + case TYPE_PHB: + { + TargetHandleList pParentPECList; + getParentAffinityTargetsByState(pParentPECList, &i_target, + CLASS_UNIT, TYPE_PEC, UTIL_FILTER_PRESENT); + HWAS_ASSERT((pParentPECList.size() == 1), + "HWAS _deconfigureByAssoc: pParentPECList != 1"); + Target *l_parentPEC = pParentPECList[0]; + + if (isFunctional(l_parentPEC)) + { + if (!anyChildFunctional(*l_parentPEC)) + { + _deconfigureTarget(*l_parentPEC, + i_errlEid, NULL, i_deconfigRule); + _deconfigureByAssoc(*l_parentPEC, + i_errlEid,i_deconfigRule); + } + } + + break; + } // TYPE_PHB default: // no action break; |