diff options
author | Matt DeVillier <matt.devillier@gmail.com> | 2018-03-22 13:57:10 -0500 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2018-03-28 06:46:28 +0000 |
commit | 9aae51ad1141a47d5c2f7133b02f5f0ab6168860 (patch) | |
tree | 63bf4a418e5d03ac51532f75bd6017a1fc9a7a97 /src/soc/intel/common/block/include/intelblocks | |
parent | 2410cd937925df60934855c885a16c40d2d69739 (diff) | |
download | coreboot-9aae51ad1141a47d5c2f7133b02f5f0ab6168860.tar.xz |
soc/intel/common/block: add VMX support
Enable VMX if supported by CPU and enabled in board devicetree.
Check lock bit unset before enabling VMX.
Change-Id: Ic57eac45e9c65baa4479735c6d70a7eb685f080e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/25331
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/soc/intel/common/block/include/intelblocks')
-rw-r--r-- | src/soc/intel/common/block/include/intelblocks/msr.h | 1 | ||||
-rw-r--r-- | src/soc/intel/common/block/include/intelblocks/vmx.h | 30 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/soc/intel/common/block/include/intelblocks/msr.h b/src/soc/intel/common/block/include/intelblocks/msr.h index 7aa81f09ea..22e8862e98 100644 --- a/src/soc/intel/common/block/include/intelblocks/msr.h +++ b/src/soc/intel/common/block/include/intelblocks/msr.h @@ -19,6 +19,7 @@ #define MSR_CORE_THREAD_COUNT 0x35 #define IA32_FEATURE_CONTROL 0x3a #define FEATURE_CONTROL_LOCK (1) +#define FEATURE_ENABLE_VMX (1 << 2) #define CPUID_VMX (1 << 5) #define CPUID_SMX (1 << 6) #define SGX_GLOBAL_ENABLE (1 << 18) diff --git a/src/soc/intel/common/block/include/intelblocks/vmx.h b/src/soc/intel/common/block/include/intelblocks/vmx.h new file mode 100644 index 0000000000..1f6d33656e --- /dev/null +++ b/src/soc/intel/common/block/include/intelblocks/vmx.h @@ -0,0 +1,30 @@ +/* + * This file is part of the coreboot project. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef SOC_INTEL_COMMON_BLOCK_VMX_H +#define SOC_INTEL_COMMON_BLOCK_VMX_H + +struct vmx_param { + uint8_t enable; +}; + +/* + * Configure VMX. + */ +void vmx_configure(void); + +/* SOC specific API to get VMX params. + * returns 0, if able to get VMX params; otherwise returns -1 */ +int soc_fill_vmx_param(struct vmx_param *vmx_param); + +#endif /* SOC_INTEL_COMMON_BLOCK_VMX_H */ |