soc/intel/apollolake: Disable Monitor and Mwait feature

Monitor/Mwait is broken on APL. So, it needs to be disabled.

BUG=chrome-os-partner:56922
BRANCH=None

Change-Id: I12cd4280de62e0a639b43538171660ee4c0a0265
Signed-off-by: Venkateswarlu Vinjamuri <venkateswarlu.v.vinjamuri@intel.com>
Reviewed-on: https://review.coreboot.org/17200
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins)
This commit is contained in:
Venkateswarlu Vinjamuri 2016-10-31 17:03:55 -07:00 committed by Aaron Durbin
parent 318ed6f818
commit 362180a8a9
2 changed files with 6 additions and 0 deletions

View File

@ -21,6 +21,9 @@
#define PM_CAP_TURBO_MODE (1 << 1) #define PM_CAP_TURBO_MODE (1 << 1)
#define MSR_IA32_MISC_ENABLES 0x1a0 #define MSR_IA32_MISC_ENABLES 0x1a0
/* Disable the Monitor Mwait FSM feature */
#define MONITOR_MWAIT_DIS_MASK 0x40000
#define H_MISC_DISABLE_TURBO (1 << 6) #define H_MISC_DISABLE_TURBO (1 << 6)
enum { enum {

View File

@ -29,6 +29,7 @@
#include <soc/cpu.h> #include <soc/cpu.h>
#include <soc/iomap.h> #include <soc/iomap.h>
#include <soc/smm.h> #include <soc/smm.h>
#include <cpu/intel/turbo.h>
static const struct reg_script core_msr_script[] = { static const struct reg_script core_msr_script[] = {
/* Enable C-state and IO/MWAIT redirect */ /* Enable C-state and IO/MWAIT redirect */
@ -40,6 +41,8 @@ static const struct reg_script core_msr_script[] = {
(ACPI_PMIO_CST_REG | (PMG_IO_BASE_CST_RNG_BLK_SIZE << 16))), (ACPI_PMIO_CST_REG | (PMG_IO_BASE_CST_RNG_BLK_SIZE << 16))),
/* Disable C1E */ /* Disable C1E */
REG_MSR_RMW(MSR_POWER_CTL, ~0x2, 0), REG_MSR_RMW(MSR_POWER_CTL, ~0x2, 0),
/* Disable support for MONITOR and MWAIT instructions */
REG_MSR_RMW(MSR_IA32_MISC_ENABLES, ~MONITOR_MWAIT_DIS_MASK, 0),
REG_SCRIPT_END REG_SCRIPT_END
}; };