Subrata Banik has submitted this change. ( https://review.coreboot.org/c/coreboot/+/78250?usp=email )
Change subject: mb/google/{rex,ovis}: Disable package C-state auto demotion ......................................................................
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 --- M src/mainboard/google/rex/variants/baseboard/ovis/devicetree.cb M src/mainboard/google/rex/variants/baseboard/rex/devicetree.cb M src/soc/intel/meteorlake/chip.h M src/soc/intel/meteorlake/fsp_params.c 4 files changed, 9 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Subrata Banik: Looks good to me, approved Eric Lai: Looks good to me, approved Kapil Porwal: Looks good to me, approved
diff --git a/src/mainboard/google/rex/variants/baseboard/ovis/devicetree.cb b/src/mainboard/google/rex/variants/baseboard/ovis/devicetree.cb index 6fc0dc0..7d39ece 100644 --- a/src/mainboard/google/rex/variants/baseboard/ovis/devicetree.cb +++ b/src/mainboard/google/rex/variants/baseboard/ovis/devicetree.cb @@ -36,6 +36,9 @@ # Disable C1 C-state auto-demotion register "disable_c1_state_auto_demotion" = "1"
+ # Disable PKGC-state demotion + register "disable_package_c_state_demotion" = "1" + # Enable Energy Reporting register "pch_pm_energy_report_enable" = "1"
diff --git a/src/mainboard/google/rex/variants/baseboard/rex/devicetree.cb b/src/mainboard/google/rex/variants/baseboard/rex/devicetree.cb index ec57ee7..5894fe6 100644 --- a/src/mainboard/google/rex/variants/baseboard/rex/devicetree.cb +++ b/src/mainboard/google/rex/variants/baseboard/rex/devicetree.cb @@ -36,6 +36,9 @@ # Disable C1 C-state auto-demotion register "disable_c1_state_auto_demotion" = "1"
+ # Disable PKGC-state demotion + register "disable_package_c_state_demotion" = "1" + # Enable Energy Reporting register "pch_pm_energy_report_enable" = "1"
diff --git a/src/soc/intel/meteorlake/chip.h b/src/soc/intel/meteorlake/chip.h index ec38e80..6210406 100644 --- a/src/soc/intel/meteorlake/chip.h +++ b/src/soc/intel/meteorlake/chip.h @@ -419,6 +419,8 @@ * 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 5350783..5ec9cf4 100644 --- a/src/soc/intel/meteorlake/fsp_params.c +++ b/src/soc/intel/meteorlake/fsp_params.c @@ -666,6 +666,7 @@ 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. */