diff --git a/drivers/interrupt_controller/Kconfig.intel_vtd b/drivers/interrupt_controller/Kconfig.intel_vtd index 124b8f4c1ef..3565942dcdd 100644 --- a/drivers/interrupt_controller/Kconfig.intel_vtd +++ b/drivers/interrupt_controller/Kconfig.intel_vtd @@ -22,6 +22,11 @@ config INTEL_VTD_ICTL_XAPIC_PASSTHROUGH help If XAPIC mode is enabled, it will avoid remapping all interrupts. +config INTEL_VTD_ICTL_NO_SRC_ID_CHECK + bool "Never check the source id" + help + Disable the source id check in IRTE. + config INTEL_VTD_ICTL_INIT_PRIORITY int "Initialization priority" default 40 diff --git a/drivers/interrupt_controller/intc_intel_vtd.c b/drivers/interrupt_controller/intc_intel_vtd.c index 772251d0fcd..90481468811 100644 --- a/drivers/interrupt_controller/intc_intel_vtd.c +++ b/drivers/interrupt_controller/intc_intel_vtd.c @@ -363,7 +363,8 @@ static int vtd_ictl_remap(const struct device *dev, irte.bits.dst_id = 0xFF << 8; } - if (src_id != USHRT_MAX) { + if (src_id != USHRT_MAX && + !IS_ENABLED(CONFIG_INTEL_VTD_ICTL_NO_SRC_ID_CHECK)) { irte.bits.src_validation_type = 1; irte.bits.src_id = src_id; }