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