diff options
Diffstat (limited to 'src/soc/intel/skylake/chip_fsp20.c')
-rw-r--r-- | src/soc/intel/skylake/chip_fsp20.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/soc/intel/skylake/chip_fsp20.c b/src/soc/intel/skylake/chip_fsp20.c index b4fed26d1d..4ac73b57c6 100644 --- a/src/soc/intel/skylake/chip_fsp20.c +++ b/src/soc/intel/skylake/chip_fsp20.c @@ -31,9 +31,11 @@ #include <soc/acpi.h> #include <soc/intel/common/vbt.h> #include <soc/interrupt.h> +#include <soc/iomap.h> #include <soc/irq.h> #include <soc/pci_devs.h> #include <soc/ramstage.h> +#include <soc/systemagent.h> #include <string.h> void soc_init_pre_device(void *chip_info) @@ -326,6 +328,19 @@ void platform_fsp_silicon_init_params_cb(FSPS_UPD *supd) /* Set TccActivationOffset */ tconfig->TccActivationOffset = config->tcc_offset; + /* Enable VT-d and X2APIC */ + if (!config->ignore_vtd && soc_is_vtd_capable()) { + params->VtdBaseAddress[0] = GFXVT_BASE_ADDRESS; + params->VtdBaseAddress[1] = VTVC0_BASE_ADDRESS; + params->X2ApicOptOut = 0; + tconfig->VtdDisable = 0; + + params->PchIoApicBdfValid = 1; + params->PchIoApicBusNumber = 250; + params->PchIoApicDeviceNumber = 31; + params->PchIoApicFunctionNumber = 0; + } + soc_irq_settings(params); } |