summaryrefslogtreecommitdiff
path: root/src/soc/intel/common/block/include/intelblocks
diff options
context:
space:
mode:
authorMatt DeVillier <matt.devillier@gmail.com>2018-03-22 13:57:10 -0500
committerPatrick Georgi <pgeorgi@google.com>2018-03-28 06:46:28 +0000
commit9aae51ad1141a47d5c2f7133b02f5f0ab6168860 (patch)
tree63bf4a418e5d03ac51532f75bd6017a1fc9a7a97 /src/soc/intel/common/block/include/intelblocks
parent2410cd937925df60934855c885a16c40d2d69739 (diff)
downloadcoreboot-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.h1
-rw-r--r--src/soc/intel/common/block/include/intelblocks/vmx.h30
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 */