Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/76827?usp=email )
Change subject: mb/google/{rex,ovis}: Disable C1-state auto demotion for rex & ovis ......................................................................
mb/google/{rex,ovis}: Disable C1-state auto demotion for rex & ovis
C1-state auto demotion feature allows hardware to determine C1-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 PC2 and lower state in camera preview case and save platform power.
Note: C1 demotion heuristics used EPB parameter to balance between power and performance, i.e. low threshold when EPB is low in-order to get C1 demotion faster and vice-versa. ChromeOS operates at default EPB=0x7 (low EPB) in both AC/DC, so in DC mode it gets more C1 demotion hits than expected (similar to AC mode) and losing power respectively.
BUG=b:286328295 TEST=Code compiles and correct value of c1-state auto demotion is passed to FSP. Also verified PC residency improvement ~10% in camera preview case.
Change-Id: I548e0e5340dec537d05718dd2f4652e10fb36ac0 Signed-off-by: Sukumar Ghorai sukumar.ghorai@intel.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/76827 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Subrata Banik subratabanik@google.com Reviewed-by: Sumeet R Pawnikar sumeet.r.pawnikar@intel.com Reviewed-by: Sridhar Siricilla sridhar.siricilla@intel.com Reviewed-by: Kapil Porwal kapilporwal@google.com Reviewed-by: Eric Lai eric_lai@quanta.corp-partner.google.com --- M src/mainboard/google/rex/variants/baseboard/ovis/devicetree.cb M src/mainboard/google/rex/variants/baseboard/rex/devicetree.cb 2 files changed, 6 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Subrata Banik: Looks good to me, approved Kapil Porwal: Looks good to me, approved Eric Lai: Looks good to me, approved Sumeet R Pawnikar: Looks good to me, but someone else must approve Sridhar Siricilla: 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 75fef6d..6fc0dc0 100644 --- a/src/mainboard/google/rex/variants/baseboard/ovis/devicetree.cb +++ b/src/mainboard/google/rex/variants/baseboard/ovis/devicetree.cb @@ -33,6 +33,9 @@ # S0ix enable register "s0ix_enable" = "1"
+ # Disable C1 C-state auto-demotion + register "disable_c1_state_auto_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 57a5288..b21c011 100644 --- a/src/mainboard/google/rex/variants/baseboard/rex/devicetree.cb +++ b/src/mainboard/google/rex/variants/baseboard/rex/devicetree.cb @@ -33,6 +33,9 @@ # S0ix enable register "s0ix_enable" = "1"
+ # Disable C1 C-state auto-demotion + register "disable_c1_state_auto_demotion" = "1" + # Enable Energy Reporting register "pch_pm_energy_report_enable" = "1"