summaryrefslogtreecommitdiffstats
path: root/src/usr/hwas/common/hwas.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/hwas/common/hwas.C')
-rw-r--r--src/usr/hwas/common/hwas.C26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/usr/hwas/common/hwas.C b/src/usr/hwas/common/hwas.C
index d3ed7271c..a74518faf 100644
--- a/src/usr/hwas/common/hwas.C
+++ b/src/usr/hwas/common/hwas.C
@@ -435,6 +435,30 @@ errlHndl_t discoverTargets()
} // for pTarget_it
+ // Check for non-present Procs and if found, trigger
+ // DeconfigGard::_invokeDeconfigureAssocProc() to run by setting
+ // setXABusEndpointDeconfigured to true
+ PredicateCTM predProc(CLASS_CHIP, TYPE_PROC);
+ TargetHandleList l_procs;
+ targetService().getAssociated(l_procs,
+ pSys,
+ TargetService::CHILD,
+ TargetService::ALL,
+ &predProc);
+
+ for (TargetHandleList::const_iterator
+ l_procsIter = l_procs.begin();
+ l_procsIter != l_procs.end();
+ ++l_procsIter)
+ {
+ if ( !(*l_procsIter)->getAttr<ATTR_HWAS_STATE>().present )
+ {
+ HWAS_INF("discoverTargets: Proc not present HUID=0x%X",
+ (*l_procsIter)->getAttr<ATTR_HUID>());
+ HWAS::theDeconfigGard().setXABusEndpointDeconfigured(true);
+ }
+ }
+
// PR keyword processing - potentially reduce the number of ex/core
// units that are functional based on what's in the PR keyword.
// call to restrict EX units, marking bad units as present=false;
@@ -584,6 +608,8 @@ errlHndl_t discoverTargets()
}
}
+
+
} while (0);
if (errl)
OpenPOWER on IntegriCloud