diff options
author | Bill Hoffa <wghoffa@us.ibm.com> | 2017-01-06 14:03:09 -0600 |
---|---|---|
committer | Matthew A. Ploetz <maploetz@us.ibm.com> | 2017-01-12 16:25:54 -0500 |
commit | caba5e2793fe5c021fead24b2157dc03d5b9133b (patch) | |
tree | cd9d750679d563a641b659abb791239c0ba2fac7 /src/usr/hwas/common | |
parent | 42013d80fce1c1e4386cda63c9c7115382f3c4eb (diff) | |
download | talos-hostboot-caba5e2793fe5c021fead24b2157dc03d5b9133b.tar.gz talos-hostboot-caba5e2793fe5c021fead24b2157dc03d5b9133b.zip |
Deconfig PHB targets when PEC target not in PG
Change-Id: I2ad6c28c3e91e4878aec150352bed2859de3efa7
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/34513
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Reviewed-by: Matthew A. Ploetz <maploetz@us.ibm.com>
Diffstat (limited to 'src/usr/hwas/common')
-rw-r--r-- | src/usr/hwas/common/hwas.C | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/usr/hwas/common/hwas.C b/src/usr/hwas/common/hwas.C index 4b08ba6ac..fa0c16882 100644 --- a/src/usr/hwas/common/hwas.C +++ b/src/usr/hwas/common/hwas.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2016 */ +/* Contributors Listed Below - COPYRIGHT 2012,2017 */ /* [+] Google Inc. */ /* [+] International Business Machines Corp. */ /* */ @@ -655,10 +655,28 @@ bool isDescFunctional(const TARGETING::TargetHandle_t &i_desc, } } else - if (i_desc->getAttr<ATTR_TYPE>() == TYPE_PEC) + if ((i_desc->getAttr<ATTR_TYPE>() == TYPE_PEC) + || (i_desc->getAttr<ATTR_TYPE>() == TYPE_PHB)) { + Target * l_targ = NULL; + + if (i_desc->getAttr<ATTR_TYPE>() == TYPE_PHB) + { + //First get Parent PEC target as there are no PG bits for PHB + TargetHandleList pParentPECList; + getParentAffinityTargetsByState(pParentPECList, i_desc, + CLASS_UNIT, TYPE_PEC, UTIL_FILTER_ALL); + HWAS_ASSERT((pParentPECList.size() == 1), + "isDescFunctional(): pParentPECList != 1"); + l_targ = pParentPECList[0]; + } + else + { + l_targ = const_cast<TARGETING::Target*>(i_desc); + } + ATTR_CHIP_UNIT_type indexPCI = - i_desc->getAttr<ATTR_CHIP_UNIT>(); + l_targ->getAttr<ATTR_CHIP_UNIT>(); // Check all bits in PCIx entry if (i_pgData[VPD_CP00_PG_PCI0_INDEX + indexPCI] != VPD_CP00_PG_PCIx_GOOD[indexPCI]) |