Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
[linux-2.6-microblaze.git] / drivers / iommu / intel / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 # Intel IOMMU support
3 config DMAR_TABLE
4         bool
5
6 config INTEL_IOMMU
7         bool "Support for Intel IOMMU using DMA Remapping Devices"
8         depends on PCI_MSI && ACPI && (X86 || IA64)
9         select DMA_OPS
10         select IOMMU_API
11         select IOMMU_IOVA
12         select NEED_DMA_MAP_STATE
13         select DMAR_TABLE
14         select SWIOTLB
15         select IOASID
16         select IOMMU_DMA
17         help
18           DMA remapping (DMAR) devices support enables independent address
19           translations for Direct Memory Access (DMA) from devices.
20           These DMA remapping devices are reported via ACPI tables
21           and include PCI device scope covered by these DMA
22           remapping devices.
23
24 config INTEL_IOMMU_DEBUGFS
25         bool "Export Intel IOMMU internals in Debugfs"
26         depends on INTEL_IOMMU && IOMMU_DEBUGFS
27         help
28           !!!WARNING!!!
29
30           DO NOT ENABLE THIS OPTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!!!
31
32           Expose Intel IOMMU internals in Debugfs.
33
34           This option is -NOT- intended for production environments, and should
35           only be enabled for debugging Intel IOMMU.
36
37 config INTEL_IOMMU_SVM
38         bool "Support for Shared Virtual Memory with Intel IOMMU"
39         depends on INTEL_IOMMU && X86_64
40         select PCI_PASID
41         select PCI_PRI
42         select MMU_NOTIFIER
43         select IOASID
44         help
45           Shared Virtual Memory (SVM) provides a facility for devices
46           to access DMA resources through process address space by
47           means of a Process Address Space ID (PASID).
48
49 config INTEL_IOMMU_DEFAULT_ON
50         def_bool y
51         prompt "Enable Intel DMA Remapping Devices by default"
52         depends on INTEL_IOMMU
53         help
54           Selecting this option will enable a DMAR device at boot time if
55           one is found. If this option is not selected, DMAR support can
56           be enabled by passing intel_iommu=on to the kernel.
57
58 config INTEL_IOMMU_BROKEN_GFX_WA
59         bool "Workaround broken graphics drivers (going away soon)"
60         depends on INTEL_IOMMU && BROKEN && X86
61         help
62           Current Graphics drivers tend to use physical address
63           for DMA and avoid using DMA APIs. Setting this config
64           option permits the IOMMU driver to set a unity map for
65           all the OS-visible memory. Hence the driver can continue
66           to use physical addresses for DMA, at least until this
67           option is removed in the 2.6.32 kernel.
68
69 config INTEL_IOMMU_FLOPPY_WA
70         def_bool y
71         depends on INTEL_IOMMU && X86
72         help
73           Floppy disk drivers are known to bypass DMA API calls
74           thereby failing to work when IOMMU is enabled. This
75           workaround will setup a 1:1 mapping for the first
76           16MiB to make floppy (an ISA device) work.
77
78 config INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
79         bool "Enable Intel IOMMU scalable mode by default"
80         depends on INTEL_IOMMU
81         help
82           Selecting this option will enable by default the scalable mode if
83           hardware presents the capability. The scalable mode is defined in
84           VT-d 3.0. The scalable mode capability could be checked by reading
85           /sys/devices/virtual/iommu/dmar*/intel-iommu/ecap. If this option
86           is not selected, scalable mode support could also be enabled by
87           passing intel_iommu=sm_on to the kernel. If not sure, please use
88           the default value.