summaryrefslogtreecommitdiffstats
path: root/src/cpu/intel/haswell
diff options
context:
space:
mode:
authorAngel Pons <th3fanbus@gmail.com>2020-10-28 22:40:02 +0100
committerNico Huber <nico.h@gmx.de>2021-01-11 23:41:41 +0000
commit053deb8e06bcdd258b8e66deaf2b039087e66507 (patch)
tree717c876aa2dd8e9d8a43e8547c521b6a1431acec /src/cpu/intel/haswell
parent4f31cdfa2c90e2233e5cdae15961555d9f4abbec (diff)
downloadcoreboot-053deb8e06bcdd258b8e66deaf2b039087e66507.tar.gz
coreboot-053deb8e06bcdd258b8e66deaf2b039087e66507.tar.bz2
coreboot-053deb8e06bcdd258b8e66deaf2b039087e66507.zip
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/intel/haswell')
-rw-r--r--src/cpu/intel/haswell/haswell_init.c11
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 ff9573f6f8d9..920a7e7bb3ac 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();