summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/perv
diff options
context:
space:
mode:
authorcrgeddes <crgeddes@us.ibm.com>2017-08-22 11:39:20 -0500
committerSachin Gupta <sgupta2m@in.ibm.com>2017-08-24 23:07:10 -0400
commiteb9e05406d8054152d66f32a6d205369edc4481b (patch)
tree0b46d38005981e4d0e85ac1a933b6bbdf0f3c893 /src/import/chips/p9/procedures/hwp/perv
parentc3afb3dd153def1859993cfe022fb729cdd1021f (diff)
downloadtalos-sbe-eb9e05406d8054152d66f32a6d205369edc4481b.tar.gz
talos-sbe-eb9e05406d8054152d66f32a6d205369edc4481b.zip
Move clearing of CPMMR PPM WRITE DISABLE so it called on all func cores
This HWP loops over functional cores while selecting the master. The loop exits after it detects all of the master exs in the master quad. The logic that clears the CPMMR WRITE DISABLE was only getting called on the master core in this loop. I added another loop over cores which calls this logic so this bit will be cleared on all cores. Change-Id: I023e18db961a23cd0d1181ab558f61c8df8d4ec3 CQ: SW399710 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/44975 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Reviewed-by: YUE DU <daviddu@us.ibm.com> Reviewed-by: Gregory S. Still <stillgs@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/45006 Reviewed-by: Hostboot Team <hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/perv')
-rw-r--r--src/import/chips/p9/procedures/hwp/perv/p9_sbe_select_ex.C16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/import/chips/p9/procedures/hwp/perv/p9_sbe_select_ex.C b/src/import/chips/p9/procedures/hwp/perv/p9_sbe_select_ex.C
index 9fe395df..f7997e9e 100644
--- a/src/import/chips/p9/procedures/hwp/perv/p9_sbe_select_ex.C
+++ b/src/import/chips/p9/procedures/hwp/perv/p9_sbe_select_ex.C
@@ -184,6 +184,15 @@ fapi2::ReturnCode p9_sbe_select_ex(
auto l_eq_functional_vector = i_target.getChildren<fapi2::TARGET_TYPE_EQ>
(fapi2::TARGET_STATE_FUNCTIONAL );
+ // Prior to writing to PM registers, ensure that the PPM write disable
+ // bit on the Core Power Management Mode Register is cleared for all cores
+ for (auto& core : l_core_functional_vector)
+ {
+ FAPI_DBG("Clearing WRITE_DISABLE bit in core %d", core.getChipletNumber());
+ l_data64.flush<0>().setBit<C_CPPM_CPMMR_PPM_WRITE_DISABLE>();
+ FAPI_TRY(fapi2::putScom(core, C_CPPM_CPMMR_CLEAR , l_data64));
+ }
+
// Read the "FORCE_ALL" attribute
fapi2::ATTR_SYS_FORCE_ALL_CORES_Type l_attr_force_all;
FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_SYS_FORCE_ALL_CORES,
@@ -378,13 +387,6 @@ fapi2::ReturnCode p9_sbe_select_ex(
FAPI_DBG("Scoreboard values for OCC: Core 0x%016llX EX 0x%016llX",
l_core_config, l_quad_config);
- // Prior to writing to PFET_DELAY register, ensure that the PPM write disable
- // bit on the Core Power Management Mode Register is cleared
- FAPI_DBG("Clearing WRITE_DISABLE bit in core %d", l_core_num);
- l_data64.flush<0>().setBit<C_CPPM_CPMMR_PPM_WRITE_DISABLE>();
-
- FAPI_TRY(fapi2::putScom(core, C_CPPM_CPMMR_CLEAR , l_data64));
-
// Write the default PFET Controller Delay values for the Core
// as it will be used for istep 4
FAPI_DBG("Setting PFET Delays in core %d", l_core_num);
OpenPOWER on IntegriCloud