From d3d0f07fd58b4037a2f4a13f3fcbe7947ef1ad5d Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Sat, 10 Nov 2018 17:44:36 -0600 Subject: [PATCH] soc/intel/braswell: add vmx support via CPU_INTEL_COMMON Braswell allready supported vmx, but offered no mechanism to unset it, nor to set the lock bit required for Windows to recognize virtualization. Enable this functionality by adding CPU_INTEL_COMMON config. Test: build/boot Windows 10 on Braswell ChromeOS device, verify Windows shows virtualization as enabled. Change-Id: I0d39abaeb9eebcceb37dc791df6b06e521fe1992 Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/29570 Tested-by: build bot (Jenkins) Reviewed-by: Arthur Heymans --- src/soc/intel/braswell/Kconfig | 1 + src/soc/intel/braswell/Makefile.inc | 1 + src/soc/intel/braswell/cpu.c | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/src/soc/intel/braswell/Kconfig b/src/soc/intel/braswell/Kconfig index 2ba79926ea..50c2802c6d 100644 --- a/src/soc/intel/braswell/Kconfig +++ b/src/soc/intel/braswell/Kconfig @@ -47,6 +47,7 @@ config CPU_SPECIFIC_OPTIONS select GENERIC_GPIO_LIB select INTEL_GMA_ACPI select INTEL_GMA_SWSMISCI + select CPU_INTEL_COMMON config VBOOT select VBOOT_STARTS_IN_ROMSTAGE diff --git a/src/soc/intel/braswell/Makefile.inc b/src/soc/intel/braswell/Makefile.inc index 38dcf5af06..ac1bacdd0e 100644 --- a/src/soc/intel/braswell/Makefile.inc +++ b/src/soc/intel/braswell/Makefile.inc @@ -7,6 +7,7 @@ subdirs-y += ../../../cpu/x86/smm subdirs-y += ../../../cpu/x86/tsc subdirs-y += ../../../cpu/intel/microcode subdirs-y += ../../../cpu/intel/turbo +subdirs-y += ../../../cpu/intel/common romstage-y += gpio_support.c romstage-y += iosf.c diff --git a/src/soc/intel/braswell/cpu.c b/src/soc/intel/braswell/cpu.c index 195dba4aea..9063c2a6ac 100644 --- a/src/soc/intel/braswell/cpu.c +++ b/src/soc/intel/braswell/cpu.c @@ -16,6 +16,7 @@ #include #include +#include #include #include #include @@ -60,6 +61,9 @@ static void soc_core_init(struct device *cpu) if (lapicid()) enable_turbo(); + /* Set virtualization based on Kconfig option */ + set_vmx(); + /* Set core MSRs */ reg_script_run(core_msr_script);