Stefan Reinauer (stefan.reinauer@coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/9281
-gerrit
commit 05c76486bebe400aacd1cf807da66750a16ecc2a Author: Duncan Laurie dlaurie@chromium.org Date: Wed Dec 10 08:16:43 2014 -0800
broadwell: Enable turbo ratio if available
When turning up the CPU frequency set it to turbo if that is a possibility. Also only set the frequency on the boot CPU since that is all we need it on, this will allow the 1-core turbo ratio.
BUG=chrome-os-partner:28234 BRANCH=samus,auron TEST=build and boot on samus
Change-Id: I573eb7a507305814ec48cc2f624b8e6ddad43f84 Signed-off-by: Stefan Reinauer reinauer@chromium.org Original-Commit-Id: d408c1b462983c682d61c6c447692391c2b52183 Original-Change-Id: Ib5ad746767ee0a56bc7e59de679a9342f053c0e5 Original-Signed-off-by: Duncan Laurie dlaurie@chromium.org Original-Reviewed-on: https://chromium-review.googlesource.com/234401 Original-Reviewed-by: Aaron Durbin adurbin@chromium.org --- src/soc/intel/broadwell/cpu.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/soc/intel/broadwell/cpu.c b/src/soc/intel/broadwell/cpu.c index 1f2ee0d..912f8ae 100644 --- a/src/soc/intel/broadwell/cpu.c +++ b/src/soc/intel/broadwell/cpu.c @@ -485,7 +485,10 @@ static void set_max_ratio(void) perf_ctl.hi = 0;
/* Check for configurable TDP option */ - if (cpu_config_tdp_levels()) { + if (get_turbo_state() == TURBO_ENABLED) { + msr = rdmsr(MSR_TURBO_RATIO_LIMIT); + perf_ctl.lo = (msr.lo & 0xff) << 8; + } else if (cpu_config_tdp_levels()) { /* Set to nominal TDP ratio */ msr = rdmsr(MSR_CONFIG_TDP_NOMINAL); perf_ctl.lo = (msr.lo & 0xff) << 8; @@ -587,9 +590,6 @@ static void cpu_core_init(device_t cpu) /* Set energy policy */ set_energy_perf_bias(ENERGY_POLICY_NORMAL);
- /* Set Max Ratio */ - set_max_ratio(); - /* Enable Turbo */ enable_turbo(); } @@ -692,6 +692,9 @@ void broadwell_init_cpus(device_t dev) printk(BIOS_ERR, "MP initialization failure.\n"); }
+ /* Set Max Ratio */ + set_max_ratio(); + /* Restore the default SMM region. */ restore_default_smm_area(smm_save_area); }