summaryrefslogtreecommitdiff
path: root/src/soc/intel/xeon_sp/gnr
diff options
context:
space:
mode:
authorJohnny Lin <johnny_lin@wiwynn.com>2023-05-08 09:08:14 +0800
committerLean Sheng Tan <sheng.tan@9elements.com>2024-09-24 11:17:28 +0000
commitac47ea86752990942a5b887e503e73b35e8140d9 (patch)
tree01ddcce6115a01122970da27cfc4ce51adf1a22e /src/soc/intel/xeon_sp/gnr
parent8f62113a7b619822825289b5f6e65dd17969b85a (diff)
soc/intel/xeon_sp/gnr: Enable VMX by FSP
Configure FSP UPD VMX from Kconfig ENABLE_VMX. Change-Id: I0c03f535b6f93761419657127e791c02e8ee4988 Signed-off-by: Johnny Lin <johnny_lin@wiwynn.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/84327 Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/intel/xeon_sp/gnr')
-rw-r--r--src/soc/intel/xeon_sp/gnr/cpu.c5
-rw-r--r--src/soc/intel/xeon_sp/gnr/romstage.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/src/soc/intel/xeon_sp/gnr/cpu.c b/src/soc/intel/xeon_sp/gnr/cpu.c
index ebccb0814d..580503537c 100644
--- a/src/soc/intel/xeon_sp/gnr/cpu.c
+++ b/src/soc/intel/xeon_sp/gnr/cpu.c
@@ -34,8 +34,9 @@ static void each_cpu_init(struct device *cpu)
printk(BIOS_SPEW, "%s dev: %s, cpu: %lu, apic_id: 0x%x\n",
__func__, dev_path(cpu), cpu_index(), cpu->path.apic.apic_id);
- /* Enable VMX */
- set_vmx_and_lock();
+ /* Only lock and let vmx enabled by FSP to avoid FSP always triggering power good reset
+ due to vmx configuration conflict */
+ set_feature_ctrl_lock();
}
static struct device_operations cpu_dev_ops = {
diff --git a/src/soc/intel/xeon_sp/gnr/romstage.c b/src/soc/intel/xeon_sp/gnr/romstage.c
index e61471ea40..48d88aaedf 100644
--- a/src/soc/intel/xeon_sp/gnr/romstage.c
+++ b/src/soc/intel/xeon_sp/gnr/romstage.c
@@ -66,6 +66,11 @@ void platform_fsp_memory_init_params_cb(FSPM_UPD *mupd, uint32_t version)
"FSP_BOOT_WITH_FULL_CONFIGURATION.\n");
}
+ if (CONFIG(ENABLE_VMX))
+ m_cfg->VmxEnable = 1;
+ else
+ m_cfg->VmxEnable = 0;
+
/* Board level settings */
mainboard_memory_init_params(mupd);
}