summaryrefslogtreecommitdiffstats
path: root/src/soc
diff options
context:
space:
mode:
authorSubrata Banik <subratabanik@google.com>2023-04-01 20:37:12 +0530
committerLean Sheng Tan <sheng.tan@9elements.com>2023-04-06 19:35:02 +0000
commitad6073c8b0bf3915e57f75947eb17bdaa2df926d (patch)
tree210541ac2f11628a107df2ac83801b3dc402784a /src/soc
parentd8fc4fa4e642a407f0fb0f365e1ea7227662a167 (diff)
downloadcoreboot-ad6073c8b0bf3915e57f75947eb17bdaa2df926d.tar.gz
coreboot-ad6073c8b0bf3915e57f75947eb17bdaa2df926d.tar.bz2
coreboot-ad6073c8b0bf3915e57f75947eb17bdaa2df926d.zip
soc/intel/meteorlake: Enable VMX using coreboot CPU feature program
This function calls into `set_feature_ctrl_vmx_arg()` to enable VMX for virtualization if not done by FSP (based on DROP_CPU_FEATURE_PROGRAM_IN_FSP config is enabled) in MeteorLake SoC based platform. TEST=Able to build and boot google/rex. Signed-off-by: Subrata Banik <subratabanik@google.com> Change-Id: I7e49c15fd4f78a3e633855fea550720f0a685062 Reviewed-on: https://review.coreboot.org/c/coreboot/+/74161 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Kapil Porwal <kapilporwal@google.com> Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Diffstat (limited to 'src/soc')
-rw-r--r--src/soc/intel/meteorlake/chip.h2
-rw-r--r--src/soc/intel/meteorlake/cpu.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/src/soc/intel/meteorlake/chip.h b/src/soc/intel/meteorlake/chip.h
index 9d9a600b4563..d4abed88c2d5 100644
--- a/src/soc/intel/meteorlake/chip.h
+++ b/src/soc/intel/meteorlake/chip.h
@@ -350,6 +350,8 @@ struct soc_intel_meteorlake_config {
/* Energy-Performance Preference (HWP feature) */
bool enable_energy_perf_pref;
uint8_t energy_perf_pref_value;
+
+ bool disable_vmx;
};
typedef struct soc_intel_meteorlake_config config_t;
diff --git a/src/soc/intel/meteorlake/cpu.c b/src/soc/intel/meteorlake/cpu.c
index fa1b83f49c26..bc7f7c76e8d4 100644
--- a/src/soc/intel/meteorlake/cpu.c
+++ b/src/soc/intel/meteorlake/cpu.c
@@ -145,6 +145,9 @@ void soc_core_init(struct device *cpu)
disable_three_strike_error();
set_aesni_lock();
+
+ /* Enable VMX */
+ set_feature_ctrl_vmx_arg(CONFIG(ENABLE_VMX) && !conf->disable_vmx);
}
}