soc/intel/skylake: enable VMX support

Use soc/common VMX block to enable VMX on supported devices.

Change-Id: Iaa1a6201b431783d709c0509715fa8e8b1ce349a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/25332
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Youness Alaoui <snifikino@gmail.com>
This commit is contained in:
Matt DeVillier 2018-03-21 20:47:52 -05:00 committed by Patrick Georgi
parent 83abfdfb21
commit 969ef10f54
2 changed files with 18 additions and 0 deletions

View File

@ -84,6 +84,7 @@ config CPU_SPECIFIC_OPTIONS
select SOC_INTEL_COMMON_BLOCK_SPI
select SOC_INTEL_COMMON_BLOCK_TIMER
select SOC_INTEL_COMMON_BLOCK_UART
select SOC_INTEL_COMMON_BLOCK_VMX
select SOC_INTEL_COMMON_BLOCK_XHCI
select SOC_INTEL_COMMON_GFX_OPREGION
select SOC_INTEL_COMMON_NHLT

View File

@ -39,6 +39,7 @@
#include <intelblocks/mp_init.h>
#include <intelblocks/sgx.h>
#include <intelblocks/smm.h>
#include <intelblocks/vmx.h>
#include <pc80/mc146818rtc.h>
#include <soc/cpu.h>
#include <soc/msr.h>
@ -476,6 +477,8 @@ static void post_mp_init(void)
smm_lock();
#endif
mp_run_on_all_cpus(vmx_configure, 2000);
mp_run_on_all_cpus(sgx_configure, 2000);
}
@ -552,3 +555,17 @@ int soc_fill_sgx_param(struct sgx_param *sgx_param)
sgx_param->enable = conf->sgx_enable;
return 0;
}
int soc_fill_vmx_param(struct vmx_param *vmx_param)
{
device_t dev = SA_DEV_ROOT;
assert(dev != NULL);
config_t *conf = dev->chip_info;
if (!conf) {
printk(BIOS_ERR, "Failed to get chip_info for VMX param\n");
return -1;
}
vmx_param->enable = conf->VmxEnable;
return 0;
}