From 7bde848d625d078f15a77bf7ed53613789c0daf8 Mon Sep 17 00:00:00 2001 From: Subrata Banik Date: Tue, 2 May 2017 19:35:42 +0530 Subject: 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 Reviewed-on: https://review.coreboot.org/19674 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- src/cpu/intel/turbo/turbo.c | 17 +++++++++++++++++ src/include/cpu/intel/turbo.h | 3 +++ 2 files changed, 20 insertions(+) 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 -- cgit v1.2.3