1 # SPDX-License-Identifier: GPL-2.0-only
10 bool "Support for Intel IOMMU using DMA Remapping Devices"
11 depends on PCI_MSI && ACPI && (X86 || IA64)
15 select NEED_DMA_MAP_STATE
22 DMA remapping (DMAR) devices support enables independent address
23 translations for Direct Memory Access (DMA) from devices.
24 These DMA remapping devices are reported via ACPI tables
25 and include PCI device scope covered by these DMA
28 config INTEL_IOMMU_DEBUGFS
29 bool "Export Intel IOMMU internals in Debugfs"
30 depends on INTEL_IOMMU && IOMMU_DEBUGFS
35 DO NOT ENABLE THIS OPTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!!!
37 Expose Intel IOMMU internals in Debugfs.
39 This option is -NOT- intended for production environments, and should
40 only be enabled for debugging Intel IOMMU.
42 config INTEL_IOMMU_SVM
43 bool "Support for Shared Virtual Memory with Intel IOMMU"
44 depends on INTEL_IOMMU && X86_64
51 Shared Virtual Memory (SVM) provides a facility for devices
52 to access DMA resources through process address space by
53 means of a Process Address Space ID (PASID).
55 config INTEL_IOMMU_DEFAULT_ON
57 prompt "Enable Intel DMA Remapping Devices by default"
58 depends on INTEL_IOMMU
60 Selecting this option will enable a DMAR device at boot time if
61 one is found. If this option is not selected, DMAR support can
62 be enabled by passing intel_iommu=on to the kernel.
64 config INTEL_IOMMU_BROKEN_GFX_WA
65 bool "Workaround broken graphics drivers (going away soon)"
66 depends on INTEL_IOMMU && BROKEN && X86
68 Current Graphics drivers tend to use physical address
69 for DMA and avoid using DMA APIs. Setting this config
70 option permits the IOMMU driver to set a unity map for
71 all the OS-visible memory. Hence the driver can continue
72 to use physical addresses for DMA, at least until this
73 option is removed in the 2.6.32 kernel.
75 config INTEL_IOMMU_FLOPPY_WA
77 depends on INTEL_IOMMU && X86
79 Floppy disk drivers are known to bypass DMA API calls
80 thereby failing to work when IOMMU is enabled. This
81 workaround will setup a 1:1 mapping for the first
82 16MiB to make floppy (an ISA device) work.
84 config INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
85 bool "Enable Intel IOMMU scalable mode by default"
86 depends on INTEL_IOMMU
88 Selecting this option will enable by default the scalable mode if
89 hardware presents the capability. The scalable mode is defined in
90 VT-d 3.0. The scalable mode capability could be checked by reading
91 /sys/devices/virtual/iommu/dmar*/intel-iommu/ecap. If this option
92 is not selected, scalable mode support could also be enabled by
93 passing intel_iommu=sm_on to the kernel. If not sure, please use