summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps/istep07
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/isteps/istep07')
-rw-r--r--src/usr/isteps/istep07/call_mss_eff_config.C51
-rw-r--r--src/usr/isteps/istep07/makefile1
2 files changed, 42 insertions, 10 deletions
diff --git a/src/usr/isteps/istep07/call_mss_eff_config.C b/src/usr/isteps/istep07/call_mss_eff_config.C
index a53c19a3f..246d10396 100644
--- a/src/usr/isteps/istep07/call_mss_eff_config.C
+++ b/src/usr/isteps/istep07/call_mss_eff_config.C
@@ -31,6 +31,7 @@
// Includes
/******************************************************************************/
#include <stdint.h>
+#include <map>
#include <trace/interface.H>
#include <initservice/taskargs.H>
@@ -204,32 +205,62 @@ void* call_mss_eff_config( void *io_pArgs )
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"SUCCESS : p9_mss_eff_config HWP");
+ } // end membuf loop
+
+ std::map<ATTR_VDDR_ID_type,TARGETING::TargetHandleList> l_domainIdGroups;
+ TARGETING::TargetHandleList l_mcbistTargetList;
+ getAllChiplets(l_mcsTargetList, TYPE_MCBIST);
+ // Iterate over all MCBIST, calling mss_eff_config_thermal
+ for (const auto & l_mcbist_target : l_mcbistTargetList)
+ {
+ TARGETING::TargetHandleList l_mcsChildren;
+ getChildChiplets(l_mcsChildren,l_mcbist_target, TARGETING::TYPE_MCS);
+
+ ATTR_VDDR_ID_type l_vddr_id = l_mcbist_target->getAttr<ATTR_VDDR_ID>();
+ if(l_domainIdGroups.find(l_vddr_id) == l_domainIdGroups.end())
+ {
+ std::pair<ATTR_VDDR_ID_type, TARGETING::TargetHandleList> tuple(l_vddr_id, l_mcsChildren);
+ l_domainIdGroups.insert(tuple);
+ }
+ else
+ {
+ l_domainIdGroups[l_vddr_id].insert(l_domainIdGroups[l_vddr_id].end(), l_mcsChildren.begin(), l_mcsChildren.end());
+ }
+ }
+
+ for (auto & l_tuple : l_domainIdGroups)
+ {
+ std::vector<fapi2::Target<fapi2::TARGET_TYPE_MCS>> l_fapi_mcs_targs;
+ for(const auto & l_mcs_target : l_tuple.second)
+ {
+ // Create a FAPI target representing the MCS
+ const fapi2::Target <fapi2::TARGET_TYPE_MCS> l_fapi_mcs_target
+ (l_mcs_target);
+ l_fapi_mcs_targs.push_back(l_fapi_mcs_target);
+ }
// Call the mss_eff_config_thermal HWP
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "p9_mss_eff_config_thermal HWP. MCS HUID %.8X", l_huid);
- FAPI_INVOKE_HWP(l_err, p9_mss_eff_config_thermal,l_fapi_mcs_target);
+ "p9_mss_eff_config_thermal HWP. ");
+ FAPI_INVOKE_HWP(l_err, p9_mss_eff_config_thermal,l_fapi_mcs_targs);
if (l_err)
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%.8X: p9_mss_eff_config_thermal HWP "
- "ran on MCS target HUID %.8X",
- l_err->reasonCode());
+ "ERROR 0x%.8X: p9_mss_eff_config_thermal HWP ",
+ l_err->reasonCode());
// Ensure istep error created and has same plid as this error
- ErrlUserDetailsTarget(l_mcs_target).addToLog(l_err);
l_StepError.addErrorDetails(l_err);
errlCommit(l_err, HWPF_COMP_ID);
}
else
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "SUCCESS : p9_mss_eff_config_thermal HWP "
- "ran on MCS target HUID %.8X",
- l_huid);
+ "SUCCESS : p9_mss_eff_config_thermal HWP");
}
- } // end membuf loop
+ }
+
if (l_StepError.isNull())
{
diff --git a/src/usr/isteps/istep07/makefile b/src/usr/isteps/istep07/makefile
index dad212312..2c7a3e349 100644
--- a/src/usr/isteps/istep07/makefile
+++ b/src/usr/isteps/istep07/makefile
@@ -72,6 +72,7 @@ include $(HWP_PATH)/p9_mss_freq_system.mk
include $(PROCEDURES_PATH)/hwp/nest/p9_mss_eff_grouping.mk
include $(HWP_PATH)/p9_mss_eff_config.mk
include $(HWP_PATH)/p9_mss_eff_config_thermal.mk
+include $(HWP_PATH)/p9_mss_bulk_pwr_throttles.mk
#mss_attr_update : MSS ATTR Overrides
include $(HWP_PATH)/p9_mss_attr_update.mk
OpenPOWER on IntegriCloud