# Intel VT-D interrupt remapping controller configuration

# Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

menuconfig INTEL_VTD_ICTL
	bool "Intel VT-D interrupt remapping controller"
	default y
	depends on !BOARD_QEMU_X86_64 && ACPI && X86 && 64BIT && PCIE_MSI_MULTI_VECTOR
	select CACHE_MANAGEMENT
	help
	  Such interrupt remapping hardware is provided through Intel VT-D
	  technology. It's being used, currently, only for MSI/MSI-X
	  multi-vector support. If you have such PCIe device requiring
	  multi-vector support, you will need to enable this.

if INTEL_VTD_ICTL

config INTEL_VTD_ICTL_XAPIC_PASSTHROUGH
	bool "XAPIC mode pass-through"
	depends on !X2APIC
	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
	help
	  This device should be initialized as soon as possible, before any
	  other device that would require it for MSI/MSI-X multi-vector support.

endif # INTEL_VTD_ICTL
