summaryrefslogtreecommitdiff
path: root/src/soc/intel
diff options
context:
space:
mode:
authorSukumar Ghorai <sukumar.ghorai@intel.com>2023-10-04 23:37:12 -0700
committerSubrata Banik <subratabanik@google.com>2023-10-07 14:58:44 +0000
commitb7f602a9fc35016d75f5669d4d413188283d1596 (patch)
treed749d96dd1b03cba87a36eb9f5bb6e194db77e50 /src/soc/intel
parent17848b65c38c32fa9630925ca8a15203a0617788 (diff)
mb/google/{rex,ovis}: Disable package C-state auto demotion
Package C-state auto demotion feature allows hardware to determine lower C-state as per platform policy. Since platform sets performance policy to balanced from hardware, auto demotion can be disabled without performance impact. Also, disabling this feature results soc to enter below PC8 state and additional power savings ~30mW in Local-Video-Playback scenario. BUG=b:303546334 TEST=Local build successfully & Boot to OS successfully - Also check platform enter PC8 state in local video playback - before this change: # iotools rdmsr 0 0xE2 -> 0x0000000060008008 - After # iotools rdmsr 0 0xE2 -> 0x0000000000008008 Change-Id: Ia4cf4a7cb6bd5eaae26197b55f9385c078960d7b Signed-off-by: Sukumar Ghorai <sukumar.ghorai@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/78250 Reviewed-by: Subrata Banik <subratabanik@google.com> Reviewed-by: Eric Lai <ericllai@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Diffstat (limited to 'src/soc/intel')
-rw-r--r--src/soc/intel/meteorlake/chip.h2
-rw-r--r--src/soc/intel/meteorlake/fsp_params.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/src/soc/intel/meteorlake/chip.h b/src/soc/intel/meteorlake/chip.h
index ec38e80f05..6210406fc9 100644
--- a/src/soc/intel/meteorlake/chip.h
+++ b/src/soc/intel/meteorlake/chip.h
@@ -419,6 +419,8 @@ struct soc_intel_meteorlake_config {
* Enable or Disable Package C-state Demotion.
* Default is set to 0.
* Set this to 1 in order to disable Package C-state demotion.
+ * NOTE: Un-Demotion from demoted Package C-state needs to be disabled
+ * when auto demotion is disabled.
*/
bool disable_package_c_state_demotion;
diff --git a/src/soc/intel/meteorlake/fsp_params.c b/src/soc/intel/meteorlake/fsp_params.c
index 5350783b00..5ec9cf423e 100644
--- a/src/soc/intel/meteorlake/fsp_params.c
+++ b/src/soc/intel/meteorlake/fsp_params.c
@@ -666,6 +666,7 @@ static void fill_fsps_misc_power_params(FSP_S_CONFIG *s_cfg,
s_cfg->C1StateUnDemotion = !config->disable_c1_state_auto_demotion;
s_cfg->C1StateAutoDemotion = !config->disable_c1_state_auto_demotion;
s_cfg->PkgCStateDemotion = !config->disable_package_c_state_demotion;
+ s_cfg->PkgCStateUnDemotion = !config->disable_package_c_state_demotion;
s_cfg->PmcV1p05PhyExtFetControlEn = 1;
/* Enable PCH to CPU energy report feature. */