diff options
Diffstat (limited to 'src/soc')
-rw-r--r-- | src/soc/intel/meteorlake/romstage/fsp_params.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/soc/intel/meteorlake/romstage/fsp_params.c b/src/soc/intel/meteorlake/romstage/fsp_params.c index bd88c158de..be242e92d6 100644 --- a/src/soc/intel/meteorlake/romstage/fsp_params.c +++ b/src/soc/intel/meteorlake/romstage/fsp_params.c @@ -2,6 +2,7 @@ #include <assert.h> #include <console/console.h> +#include <cpu/intel/cpu_ids.h> #include <cpu/x86/msr.h> #include <device/device.h> #include <fsp/fsp_debug_event.h> @@ -234,6 +235,15 @@ static void fill_fspm_usb4_params(FSP_M_CONFIG *m_cfg, static void fill_fspm_vtd_params(FSP_M_CONFIG *m_cfg, const struct soc_intel_meteorlake_config *config) { + const uint32_t cpuid = cpu_get_cpuid(); + + /* FIXME: Enable Vtd back when kernel cmdline needs it. */ + if (cpuid == CPUID_METEORLAKE_A0_1 || cpuid == CPUID_METEORLAKE_A0_2) { + m_cfg->VtdDisable = 1; + m_cfg->VmxEnable = 0; + return; + } + m_cfg->VtdDisable = 0; m_cfg->VtdBaseAddress[0] = GFXVT_BASE_ADDRESS; m_cfg->VtdBaseAddress[1] = VTVC0_BASE_ADDRESS; |