diff options
author | Angel Pons <th3fanbus@gmail.com> | 2020-10-28 22:40:02 +0100 |
---|---|---|
committer | Nico Huber <nico.h@gmx.de> | 2021-01-11 23:41:41 +0000 |
commit | 053deb8e06bcdd258b8e66deaf2b039087e66507 (patch) | |
tree | 717c876aa2dd8e9d8a43e8547c521b6a1431acec /src/cpu | |
parent | 4f31cdfa2c90e2233e5cdae15961555d9f4abbec (diff) | |
download | coreboot-053deb8e06bcdd258b8e66deaf2b039087e66507.tar.xz |
cpu/intel/haswell: Enable turbo ratio if available
Commit 7f28e4ee01 (broadwell: Enable turbo ratio if available) is also
applicable to Haswell, since the MSR definitions are the same for both.
Change-Id: Ic5f30a5b06301449253bbfb9ed58c6b35a767763
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/46918
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/intel/haswell/haswell_init.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/cpu/intel/haswell/haswell_init.c b/src/cpu/intel/haswell/haswell_init.c index ff9573f6f8..920a7e7bb3 100644 --- a/src/cpu/intel/haswell/haswell_init.c +++ b/src/cpu/intel/haswell/haswell_init.c @@ -541,7 +541,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; @@ -600,9 +603,6 @@ static void cpu_core_init(struct device *cpu) /* Set energy policy */ set_energy_perf_bias(ENERGY_POLICY_NORMAL); - /* Set Max Ratio */ - set_max_ratio(); - /* Enable Turbo */ enable_turbo(); } @@ -658,6 +658,9 @@ static void per_cpu_smm_trigger(void) static void post_mp_init(void) { + /* Set Max Ratio */ + set_max_ratio(); + /* Now that all APs have been relocated as well as the BSP let SMIs * start flowing. */ global_smi_enable(); |