Merge remote-tracking branch 'origin/dev/k3.3-rc1-iommu' into android-tegra-nv-3.1
[linux-2.6.git] / drivers / iommu / Kconfig
index e2a5f14..b394c6c 100644 (file)
@@ -2,6 +2,17 @@
 config IOMMU_API
        bool
 
+menuconfig IOMMU_SUPPORT
+       bool "IOMMU Hardware Support"
+       default y
+       ---help---
+         Say Y here if you want to compile device drivers for IO Memory
+         Management Units into the kernel. These devices usually allow to
+         remap DMA requests and/or remap interrupts from other devices on the
+         system.
+
+if IOMMU_SUPPORT
+
 # MSM IOMMU support
 config MSM_IOMMU
        bool "MSM IOMMU Support"
@@ -23,7 +34,9 @@ config AMD_IOMMU
        bool "AMD IOMMU support"
        select SWIOTLB
        select PCI_MSI
-       select PCI_IOV
+       select PCI_ATS
+       select PCI_PRI
+       select PCI_PASID
        select IOMMU_API
        depends on X86_64 && PCI && ACPI
        ---help---
@@ -47,11 +60,24 @@ config AMD_IOMMU_STATS
          information to userspace via debugfs.
          If unsure, say N.
 
+config AMD_IOMMU_V2
+       tristate "AMD IOMMU Version 2 driver (EXPERIMENTAL)"
+       depends on AMD_IOMMU && PROFILING && EXPERIMENTAL
+       select MMU_NOTIFIER
+       ---help---
+         This option enables support for the AMD IOMMUv2 features of the IOMMU
+         hardware. Select this option if you want to use devices that support
+         the the PCI PRI and PASID interface.
+
 # Intel IOMMU support
-config DMAR
-       bool "Support for DMA Remapping Devices"
+config DMAR_TABLE
+       bool
+
+config INTEL_IOMMU
+       bool "Support for Intel IOMMU using DMA Remapping Devices"
        depends on PCI_MSI && ACPI && (X86 || IA64_GENERIC)
        select IOMMU_API
+       select DMAR_TABLE
        help
          DMA remapping (DMAR) devices support enables independent address
          translations for Direct Memory Access (DMA) from devices.
@@ -59,18 +85,18 @@ config DMAR
          and include PCI device scope covered by these DMA
          remapping devices.
 
-config DMAR_DEFAULT_ON
+config INTEL_IOMMU_DEFAULT_ON
        def_bool y
-       prompt "Enable DMA Remapping Devices by default"
-       depends on DMAR
+       prompt "Enable Intel DMA Remapping Devices by default"
+       depends on INTEL_IOMMU
        help
          Selecting this option will enable a DMAR device at boot time if
          one is found. If this option is not selected, DMAR support can
          be enabled by passing intel_iommu=on to the kernel.
 
-config DMAR_BROKEN_GFX_WA
+config INTEL_IOMMU_BROKEN_GFX_WA
        bool "Workaround broken graphics drivers (going away soon)"
-       depends on DMAR && BROKEN && X86
+       depends on INTEL_IOMMU && BROKEN && X86
        ---help---
          Current Graphics drivers tend to use physical address
          for DMA and avoid using DMA APIs. Setting this config
@@ -79,19 +105,61 @@ config DMAR_BROKEN_GFX_WA
          to use physical addresses for DMA, at least until this
          option is removed in the 2.6.32 kernel.
 
-config DMAR_FLOPPY_WA
+config INTEL_IOMMU_FLOPPY_WA
        def_bool y
-       depends on DMAR && X86
+       depends on INTEL_IOMMU && X86
        ---help---
          Floppy disk drivers are known to bypass DMA API calls
          thereby failing to work when IOMMU is enabled. This
          workaround will setup a 1:1 mapping for the first
          16MiB to make floppy (an ISA device) work.
 
-config INTR_REMAP
+config IRQ_REMAP
        bool "Support for Interrupt Remapping (EXPERIMENTAL)"
        depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL
+       select DMAR_TABLE
        ---help---
          Supports Interrupt remapping for IO-APIC and MSI devices.
          To use x2apic mode in the CPU's which support x2APIC enhancements or
          to support platforms with CPU's having > 8 bit APIC ID, say Y.
+
+# OMAP IOMMU support
+config OMAP_IOMMU
+       bool "OMAP IOMMU Support"
+       depends on ARCH_OMAP
+       select IOMMU_API
+
+config OMAP_IOVMM
+       tristate "OMAP IO Virtual Memory Manager Support"
+       depends on OMAP_IOMMU
+
+config OMAP_IOMMU_DEBUG
+       tristate "Export OMAP IOMMU/IOVMM internals in DebugFS"
+       depends on OMAP_IOVMM && DEBUG_FS
+       help
+         Select this to see extensive information about
+         the internal state of OMAP IOMMU/IOVMM in debugfs.
+
+         Say N unless you know you need this.
+
+config TEGRA_IOMMU_SMMU
+       bool "Tegra SMMU IOMMU Support"
+       depends on ARCH_TEGRA
+       select IOMMU_API
+       help
+         Enables support for remapping discontiguous physical memory
+         shared with the operating system into contiguous I/O virtual
+         space through the SMMU (System Memory Management Unit)
+         hardware included on Tegra SoCs.
+
+config TEGRA_IOMMU_GART
+       bool "Tegra GART IOMMU Support"
+       depends on ARCH_TEGRA_2x_SOC
+       select IOMMU_API
+       help
+         Enables support for remapping discontiguous physical memory
+         shared with the operating system into contiguous I/O virtual
+         space through the GART (Graphics Address Relocation Table)
+         hardware included on Tegra SoCs.
+
+endif # IOMMU_SUPPORT