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.C88
1 files changed, 39 insertions, 49 deletions
diff --git a/src/usr/hwas/common/hwas.C b/src/usr/hwas/common/hwas.C
index 38cc9d4a5..0aaa0246b 100644
--- a/src/usr/hwas/common/hwas.C
+++ b/src/usr/hwas/common/hwas.C
@@ -2495,67 +2495,57 @@ void calculateEffectiveEC()
errlHndl_t markDisabledMcas()
{
errlHndl_t l_errl = nullptr;
- uint8_t lxData[HWAS::VPD_CRP0_LX_DATA_LENGTH];
+ uint8_t lxData[HWAS::VPD_CRP0_LX_HDR_DATA_LENGTH];
HWAS_INF("markDisabledMcas entry");
do
{
- //Get all functional chips
- TARGETING::TargetHandleList l_procList;
- getAllChips(l_procList, TYPE_PROC);
+ //Get the functional MCAs
+ TargetHandleList l_mcaList;
+ getAllChiplets(l_mcaList, TYPE_MCA, true);
- //Loop through all functional procs
- for(auto l_proc : l_procList)
+ for (auto l_mca : l_mcaList)
{
- //Get the functional MCAs for this proc
- TargetHandleList l_mcaList;
- getChildChiplets(l_mcaList, l_proc, TYPE_MCA, true);
-
- for (auto l_mca : l_mcaList)
- {
- // fill the Lx data buffer with zeros
- memset(lxData, 0x00, VPD_CRP0_LX_DATA_LENGTH);
+ // fill the Lx data buffer with zeros
+ memset(lxData, 0x00, VPD_CRP0_LX_HDR_DATA_LENGTH);
#ifdef __HOSTBOOT_MODULE
- //@TODO RTC:167294 Need to remove conditional after
- // additional implementation
- //Read Lx keyword for associated proc and MCA
- l_errl = platReadLx(l_proc,
- l_mca,
- lxData);
+ //@TODO RTC:167294 Need to remove conditional after
+ // additional implementation
+ //Read Lx keyword for associated proc and MCA
+ l_errl = platReadLx(l_mca,
+ lxData);
#endif
- if (l_errl)
- {
- // commit the error but keep going
- errlCommit(l_errl, HWAS_COMP_ID);
- }
+ if (l_errl)
+ {
+ // commit the error but keep going
+ errlCommit(l_errl, HWAS_COMP_ID);
+ }
- if (lxData[VPD_CRP0_LX_FREQ_INDEP_INDEX
- + VPD_CRP0_LX_PORT_DISABLED] != 0)
- {
- // Since port is disabled, MCA is not functional, but
- // it's present.
- enableHwasState(l_mca,
- true, // present
- false, // not functional
- DeconfigGard::DECONFIGURED_BY_DISABLED_PORT
- );
- HWAS_DBG("MCA %.8X - marked present, not functional",
- l_mca->getAttr<ATTR_HUID>());
-
- TargetInfo l_TargetInfo;
- l_TargetInfo.affinityPath =
- l_mca->getAttr<ATTR_AFFINITY_PATH>();
- l_TargetInfo.pThisTarget = l_mca;
- l_TargetInfo.type = l_mca->getAttr<ATTR_TYPE>();
- l_TargetInfo.reason =
- DeconfigGard::DECONFIGURED_BY_DISABLED_PORT;
-
- // Deconfigure child targets for this MCA
- deconfigPresentByAssoc(l_TargetInfo);
- }
+ if (lxData[VPD_CRP0_LX_FREQ_INDEP_INDEX
+ + VPD_CRP0_LX_PORT_DISABLED] != 0)
+ {
+ // Since port is disabled, MCA is not functional, but
+ // it's present.
+ enableHwasState(l_mca,
+ true, // present
+ false, // not functional
+ DeconfigGard::DECONFIGURED_BY_DISABLED_PORT);
+ HWAS_DBG("MCA %.8X - marked present, not functional",
+ l_mca->getAttr<ATTR_HUID>());
+
+ TargetInfo l_TargetInfo;
+ l_TargetInfo.affinityPath =
+ l_mca->getAttr<ATTR_AFFINITY_PATH>();
+ l_TargetInfo.pThisTarget = l_mca;
+ l_TargetInfo.type = l_mca->getAttr<ATTR_TYPE>();
+ l_TargetInfo.reason =
+ DeconfigGard::DECONFIGURED_BY_DISABLED_PORT;
+
+ // Deconfigure child targets for this MCA
+ deconfigPresentByAssoc(l_TargetInfo);
}
}
OpenPOWER on IntegriCloud