aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubrata Banik <subrata.banik@intel.com>2017-05-02 19:35:42 +0530
committerMartin Roth <martinroth@google.com>2017-05-16 17:43:28 +0200
commit7bde848d625d078f15a77bf7ed53613789c0daf8 (patch)
tree64d19aa3f71259e9697c587be33ecef958155fe2
parent7a00a63829881a099d679de13d725d94ea658ed9 (diff)
cpu/intel/turbo: Add option to disable turbo
disable_turbo function can be used to disable turbo mode on each processor by settings MSR 0x1A0 bit 38. This option will help to perform some quick test without enabling turbo mode. Change-Id: If3e387e16e9fa6f63cb0ffff6ab2759b447e7c5c Signed-off-by: Subrata Banik <subrata.banik@intel.com> Reviewed-on: https://review.coreboot.org/19674 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--src/cpu/intel/turbo/turbo.c17
-rw-r--r--src/include/cpu/intel/turbo.h3
2 files changed, 20 insertions, 0 deletions
diff --git a/src/cpu/intel/turbo/turbo.c b/src/cpu/intel/turbo/turbo.c
index ac6627372b..3fae3f0bd7 100644
--- a/src/cpu/intel/turbo/turbo.c
+++ b/src/cpu/intel/turbo/turbo.c
@@ -106,3 +106,20 @@ void enable_turbo(void)
printk(BIOS_INFO, "Turbo has been enabled\n");
}
}
+
+/*
+ * Try to disable Turbo mode.
+ */
+void disable_turbo(void)
+{
+ msr_t msr;
+
+ /* Set Turbo Disable bit in Misc Enables */
+ msr = rdmsr(MSR_IA32_MISC_ENABLES);
+ msr.hi |= H_MISC_DISABLE_TURBO;
+ wrmsr(MSR_IA32_MISC_ENABLES, msr);
+
+ /* Update cached turbo state */
+ set_global_turbo_state(TURBO_UNAVAILABLE);
+ printk(BIOS_INFO, "Turbo has been disabled\n");
+}
diff --git a/src/include/cpu/intel/turbo.h b/src/include/cpu/intel/turbo.h
index 6626cb13c0..58f4831d4b 100644
--- a/src/include/cpu/intel/turbo.h
+++ b/src/include/cpu/intel/turbo.h
@@ -39,4 +39,7 @@ int get_turbo_state(void);
/* Enable turbo */
void enable_turbo(void);
+/* Disable turbo */
+void disable_turbo(void);
+
#endif