xref: /linux/drivers/iommu/Kconfig (revision 2a96536e77b43cf1e70ab3ad8b46b98ab52b56c1)
1ab493a0fSOhad Ben-Cohen# IOMMU_API always gets selected by whoever wants it.
2ab493a0fSOhad Ben-Cohenconfig IOMMU_API
3ab493a0fSOhad Ben-Cohen	bool
4b10f127eSOhad Ben-Cohen
568255b62SJoerg Roedelmenuconfig IOMMU_SUPPORT
668255b62SJoerg Roedel	bool "IOMMU Hardware Support"
768255b62SJoerg Roedel	default y
868255b62SJoerg Roedel	---help---
968255b62SJoerg Roedel	  Say Y here if you want to compile device drivers for IO Memory
1068255b62SJoerg Roedel	  Management Units into the kernel. These devices usually allow to
1168255b62SJoerg Roedel	  remap DMA requests and/or remap interrupts from other devices on the
1268255b62SJoerg Roedel	  system.
1368255b62SJoerg Roedel
1468255b62SJoerg Roedelif IOMMU_SUPPORT
1568255b62SJoerg Roedel
16b10f127eSOhad Ben-Cohen# MSM IOMMU support
17b10f127eSOhad Ben-Cohenconfig MSM_IOMMU
18b10f127eSOhad Ben-Cohen	bool "MSM IOMMU Support"
19b10f127eSOhad Ben-Cohen	depends on ARCH_MSM8X60 || ARCH_MSM8960
20b10f127eSOhad Ben-Cohen	select IOMMU_API
21b10f127eSOhad Ben-Cohen	help
22b10f127eSOhad Ben-Cohen	  Support for the IOMMUs found on certain Qualcomm SOCs.
23b10f127eSOhad Ben-Cohen	  These IOMMUs allow virtualization of the address space used by most
24b10f127eSOhad Ben-Cohen	  cores within the multimedia subsystem.
25b10f127eSOhad Ben-Cohen
26b10f127eSOhad Ben-Cohen	  If unsure, say N here.
27b10f127eSOhad Ben-Cohen
28b10f127eSOhad Ben-Cohenconfig IOMMU_PGTABLES_L2
29b10f127eSOhad Ben-Cohen	def_bool y
30b10f127eSOhad Ben-Cohen	depends on MSM_IOMMU && MMU && SMP && CPU_DCACHE_DISABLE=n
3129b68415SOhad Ben-Cohen
3229b68415SOhad Ben-Cohen# AMD IOMMU support
3329b68415SOhad Ben-Cohenconfig AMD_IOMMU
3429b68415SOhad Ben-Cohen	bool "AMD IOMMU support"
3529b68415SOhad Ben-Cohen	select SWIOTLB
3629b68415SOhad Ben-Cohen	select PCI_MSI
3752815b75SJoerg Roedel	select PCI_ATS
3852815b75SJoerg Roedel	select PCI_PRI
3952815b75SJoerg Roedel	select PCI_PASID
4029b68415SOhad Ben-Cohen	select IOMMU_API
4129b68415SOhad Ben-Cohen	depends on X86_64 && PCI && ACPI
4229b68415SOhad Ben-Cohen	---help---
4329b68415SOhad Ben-Cohen	  With this option you can enable support for AMD IOMMU hardware in
4429b68415SOhad Ben-Cohen	  your system. An IOMMU is a hardware component which provides
4529b68415SOhad Ben-Cohen	  remapping of DMA memory accesses from devices. With an AMD IOMMU you
4629b68415SOhad Ben-Cohen	  can isolate the the DMA memory of different devices and protect the
4729b68415SOhad Ben-Cohen	  system from misbehaving device drivers or hardware.
4829b68415SOhad Ben-Cohen
4929b68415SOhad Ben-Cohen	  You can find out if your system has an AMD IOMMU if you look into
5029b68415SOhad Ben-Cohen	  your BIOS for an option to enable it or if you have an IVRS ACPI
5129b68415SOhad Ben-Cohen	  table.
5229b68415SOhad Ben-Cohen
5329b68415SOhad Ben-Cohenconfig AMD_IOMMU_STATS
5429b68415SOhad Ben-Cohen	bool "Export AMD IOMMU statistics to debugfs"
5529b68415SOhad Ben-Cohen	depends on AMD_IOMMU
5629b68415SOhad Ben-Cohen	select DEBUG_FS
5729b68415SOhad Ben-Cohen	---help---
5829b68415SOhad Ben-Cohen	  This option enables code in the AMD IOMMU driver to collect various
5929b68415SOhad Ben-Cohen	  statistics about whats happening in the driver and exports that
6029b68415SOhad Ben-Cohen	  information to userspace via debugfs.
6129b68415SOhad Ben-Cohen	  If unsure, say N.
62166e9278SOhad Ben-Cohen
63e3c495c7SJoerg Roedelconfig AMD_IOMMU_V2
64e3c495c7SJoerg Roedel	tristate "AMD IOMMU Version 2 driver (EXPERIMENTAL)"
658736b2c3SJoerg Roedel	depends on AMD_IOMMU && PROFILING && EXPERIMENTAL
668736b2c3SJoerg Roedel	select MMU_NOTIFIER
67e3c495c7SJoerg Roedel	---help---
68e3c495c7SJoerg Roedel	  This option enables support for the AMD IOMMUv2 features of the IOMMU
69e3c495c7SJoerg Roedel	  hardware. Select this option if you want to use devices that support
70e3c495c7SJoerg Roedel	  the the PCI PRI and PASID interface.
71e3c495c7SJoerg Roedel
72166e9278SOhad Ben-Cohen# Intel IOMMU support
73d3f13810SSuresh Siddhaconfig DMAR_TABLE
74d3f13810SSuresh Siddha	bool
75d3f13810SSuresh Siddha
76d3f13810SSuresh Siddhaconfig INTEL_IOMMU
77d3f13810SSuresh Siddha	bool "Support for Intel IOMMU using DMA Remapping Devices"
78166e9278SOhad Ben-Cohen	depends on PCI_MSI && ACPI && (X86 || IA64_GENERIC)
79166e9278SOhad Ben-Cohen	select IOMMU_API
80d3f13810SSuresh Siddha	select DMAR_TABLE
81166e9278SOhad Ben-Cohen	help
82166e9278SOhad Ben-Cohen	  DMA remapping (DMAR) devices support enables independent address
83166e9278SOhad Ben-Cohen	  translations for Direct Memory Access (DMA) from devices.
84166e9278SOhad Ben-Cohen	  These DMA remapping devices are reported via ACPI tables
85166e9278SOhad Ben-Cohen	  and include PCI device scope covered by these DMA
86166e9278SOhad Ben-Cohen	  remapping devices.
87166e9278SOhad Ben-Cohen
88d3f13810SSuresh Siddhaconfig INTEL_IOMMU_DEFAULT_ON
89166e9278SOhad Ben-Cohen	def_bool y
90d3f13810SSuresh Siddha	prompt "Enable Intel DMA Remapping Devices by default"
91d3f13810SSuresh Siddha	depends on INTEL_IOMMU
92166e9278SOhad Ben-Cohen	help
93166e9278SOhad Ben-Cohen	  Selecting this option will enable a DMAR device at boot time if
94166e9278SOhad Ben-Cohen	  one is found. If this option is not selected, DMAR support can
95166e9278SOhad Ben-Cohen	  be enabled by passing intel_iommu=on to the kernel.
96166e9278SOhad Ben-Cohen
97d3f13810SSuresh Siddhaconfig INTEL_IOMMU_BROKEN_GFX_WA
98166e9278SOhad Ben-Cohen	bool "Workaround broken graphics drivers (going away soon)"
99d3f13810SSuresh Siddha	depends on INTEL_IOMMU && BROKEN && X86
100166e9278SOhad Ben-Cohen	---help---
101166e9278SOhad Ben-Cohen	  Current Graphics drivers tend to use physical address
102166e9278SOhad Ben-Cohen	  for DMA and avoid using DMA APIs. Setting this config
103166e9278SOhad Ben-Cohen	  option permits the IOMMU driver to set a unity map for
104166e9278SOhad Ben-Cohen	  all the OS-visible memory. Hence the driver can continue
105166e9278SOhad Ben-Cohen	  to use physical addresses for DMA, at least until this
106166e9278SOhad Ben-Cohen	  option is removed in the 2.6.32 kernel.
107166e9278SOhad Ben-Cohen
108d3f13810SSuresh Siddhaconfig INTEL_IOMMU_FLOPPY_WA
109166e9278SOhad Ben-Cohen	def_bool y
110d3f13810SSuresh Siddha	depends on INTEL_IOMMU && X86
111166e9278SOhad Ben-Cohen	---help---
112166e9278SOhad Ben-Cohen	  Floppy disk drivers are known to bypass DMA API calls
113166e9278SOhad Ben-Cohen	  thereby failing to work when IOMMU is enabled. This
114166e9278SOhad Ben-Cohen	  workaround will setup a 1:1 mapping for the first
115166e9278SOhad Ben-Cohen	  16MiB to make floppy (an ISA device) work.
116166e9278SOhad Ben-Cohen
117d3f13810SSuresh Siddhaconfig IRQ_REMAP
118166e9278SOhad Ben-Cohen	bool "Support for Interrupt Remapping (EXPERIMENTAL)"
119166e9278SOhad Ben-Cohen	depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL
120d3f13810SSuresh Siddha	select DMAR_TABLE
121166e9278SOhad Ben-Cohen	---help---
122166e9278SOhad Ben-Cohen	  Supports Interrupt remapping for IO-APIC and MSI devices.
123166e9278SOhad Ben-Cohen	  To use x2apic mode in the CPU's which support x2APIC enhancements or
124166e9278SOhad Ben-Cohen	  to support platforms with CPU's having > 8 bit APIC ID, say Y.
12568255b62SJoerg Roedel
126fcf3a6efSOhad Ben-Cohen# OMAP IOMMU support
127fcf3a6efSOhad Ben-Cohenconfig OMAP_IOMMU
128fcf3a6efSOhad Ben-Cohen	bool "OMAP IOMMU Support"
129024ae884SOhad Ben-Cohen	depends on ARCH_OMAP
130fcf3a6efSOhad Ben-Cohen	select IOMMU_API
131fcf3a6efSOhad Ben-Cohen
132fcf3a6efSOhad Ben-Cohenconfig OMAP_IOVMM
1337b6d45f1SJoerg Roedel	tristate "OMAP IO Virtual Memory Manager Support"
1347b6d45f1SJoerg Roedel	depends on OMAP_IOMMU
135fcf3a6efSOhad Ben-Cohen
136fcf3a6efSOhad Ben-Cohenconfig OMAP_IOMMU_DEBUG
137fcf3a6efSOhad Ben-Cohen       tristate "Export OMAP IOMMU/IOVMM internals in DebugFS"
138fcf3a6efSOhad Ben-Cohen       depends on OMAP_IOVMM && DEBUG_FS
139fcf3a6efSOhad Ben-Cohen       help
140fcf3a6efSOhad Ben-Cohen         Select this to see extensive information about
141fcf3a6efSOhad Ben-Cohen         the internal state of OMAP IOMMU/IOVMM in debugfs.
142fcf3a6efSOhad Ben-Cohen
143fcf3a6efSOhad Ben-Cohen         Say N unless you know you need this.
144fcf3a6efSOhad Ben-Cohen
145d53e54b4SHiroshi DOYUconfig TEGRA_IOMMU_GART
146d53e54b4SHiroshi DOYU	bool "Tegra GART IOMMU Support"
147d53e54b4SHiroshi DOYU	depends on ARCH_TEGRA_2x_SOC
148d53e54b4SHiroshi DOYU	select IOMMU_API
149d53e54b4SHiroshi DOYU	help
150d53e54b4SHiroshi DOYU	  Enables support for remapping discontiguous physical memory
151d53e54b4SHiroshi DOYU	  shared with the operating system into contiguous I/O virtual
152d53e54b4SHiroshi DOYU	  space through the GART (Graphics Address Relocation Table)
153d53e54b4SHiroshi DOYU	  hardware included on Tegra SoCs.
154d53e54b4SHiroshi DOYU
1557a31f6f4SHiroshi DOYUconfig TEGRA_IOMMU_SMMU
1567a31f6f4SHiroshi DOYU	bool "Tegra SMMU IOMMU Support"
1577a31f6f4SHiroshi DOYU	depends on ARCH_TEGRA_3x_SOC
1587a31f6f4SHiroshi DOYU	select IOMMU_API
1597a31f6f4SHiroshi DOYU	help
1607a31f6f4SHiroshi DOYU	  Enables support for remapping discontiguous physical memory
1617a31f6f4SHiroshi DOYU	  shared with the operating system into contiguous I/O virtual
1627a31f6f4SHiroshi DOYU	  space through the SMMU (System Memory Management Unit)
1637a31f6f4SHiroshi DOYU	  hardware included on Tegra SoCs.
1647a31f6f4SHiroshi DOYU
165*2a96536eSKyongHo Choconfig EXYNOS_IOMMU
166*2a96536eSKyongHo Cho	bool "Exynos IOMMU Support"
167*2a96536eSKyongHo Cho	depends on ARCH_EXYNOS && EXYNOS_DEV_SYSMMU
168*2a96536eSKyongHo Cho	select IOMMU_API
169*2a96536eSKyongHo Cho	help
170*2a96536eSKyongHo Cho	  Support for the IOMMU(System MMU) of Samsung Exynos application
171*2a96536eSKyongHo Cho	  processor family. This enables H/W multimedia accellerators to see
172*2a96536eSKyongHo Cho	  non-linear physical memory chunks as a linear memory in their
173*2a96536eSKyongHo Cho	  address spaces
174*2a96536eSKyongHo Cho
175*2a96536eSKyongHo Cho	  If unsure, say N here.
176*2a96536eSKyongHo Cho
177*2a96536eSKyongHo Choconfig EXYNOS_IOMMU_DEBUG
178*2a96536eSKyongHo Cho	bool "Debugging log for Exynos IOMMU"
179*2a96536eSKyongHo Cho	depends on EXYNOS_IOMMU
180*2a96536eSKyongHo Cho	help
181*2a96536eSKyongHo Cho	  Select this to see the detailed log message that shows what
182*2a96536eSKyongHo Cho	  happens in the IOMMU driver
183*2a96536eSKyongHo Cho
184*2a96536eSKyongHo Cho	  Say N unless you need kernel log message for IOMMU debugging
185*2a96536eSKyongHo Cho
18668255b62SJoerg Roedelendif # IOMMU_SUPPORT
187