1 # SPDX-License-Identifier: GPL-2.0-only
13 bool "Support for Intel IOMMU using DMA Remapping Devices"
14 depends on PCI_MSI && ACPI && X86
18 select IOMMUFD_DRIVER if IOMMUFD
19 select NEED_DMA_MAP_STATE
26 DMA remapping (DMAR) devices support enables independent address
27 translations for Direct Memory Access (DMA) from devices.
28 These DMA remapping devices are reported via ACPI tables
29 and include PCI device scope covered by these DMA
34 config INTEL_IOMMU_DEBUGFS
35 bool "Export Intel IOMMU internals in Debugfs"
36 depends on IOMMU_DEBUGFS
42 DO NOT ENABLE THIS OPTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!!!
44 Expose Intel IOMMU internals in Debugfs.
46 This option is -NOT- intended for production environments, and should
47 only be enabled for debugging Intel IOMMU.
49 config INTEL_IOMMU_SVM
50 bool "Support for Shared Virtual Memory with Intel IOMMU"
55 Shared Virtual Memory (SVM) provides a facility for devices
56 to access DMA resources through process address space by
57 means of a Process Address Space ID (PASID).
59 config INTEL_IOMMU_DEFAULT_ON
60 bool "Enable Intel DMA Remapping Devices by default"
63 Selecting this option will enable a DMAR device at boot time if
64 one is found. If this option is not selected, DMAR support can
65 be enabled by passing intel_iommu=on to the kernel.
67 config INTEL_IOMMU_BROKEN_GFX_WA
68 bool "Workaround broken graphics drivers (going away soon)"
69 depends on BROKEN && X86
71 Current Graphics drivers tend to use physical address
72 for DMA and avoid using DMA APIs. Setting this config
73 option permits the IOMMU driver to set a unity map for
74 all the OS-visible memory. Hence the driver can continue
75 to use physical addresses for DMA, at least until this
76 option is removed in the 2.6.32 kernel.
78 config INTEL_IOMMU_FLOPPY_WA
82 Floppy disk drivers are known to bypass DMA API calls
83 thereby failing to work when IOMMU is enabled. This
84 workaround will setup a 1:1 mapping for the first
85 16MiB to make floppy (an ISA device) work.
87 config INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
88 bool "Enable Intel IOMMU scalable mode by default"
91 Selecting this option will enable by default the scalable mode if
92 hardware presents the capability. The scalable mode is defined in
93 VT-d 3.0. The scalable mode capability could be checked by reading
94 /sys/devices/virtual/iommu/dmar*/intel-iommu/ecap. If this option
95 is not selected, scalable mode support could also be enabled by
96 passing intel_iommu=sm_on to the kernel. If not sure, please use
99 config INTEL_IOMMU_PERF_EVENTS
101 bool "Intel IOMMU performance events"
102 depends on INTEL_IOMMU && PERF_EVENTS
104 Selecting this option will enable the performance monitoring
105 infrastructure in the Intel IOMMU. It collects information about
106 key events occurring during operation of the remapping hardware,
107 to aid performance tuning and debug. These are available on modern
108 processors which support Intel VT-d 4.0 and later.