123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- # IOMMU_API always gets selected by whoever wants it.
- 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
- # MSM_IOMMU always gets selected by whoever wants it.
- config MSM_IOMMU
- bool
- # MSM IOMMUv0 support
- config MSM_IOMMU_V0
- bool "MSM IOMMUv0 Support"
- depends on ARCH_MSM8X60 || ARCH_MSM8960 || ARCH_APQ8064 || ARCH_MSM8610
- select IOMMU_API
- select MSM_IOMMU
- help
- Support for the IOMMUs (v0) found on certain Qualcomm SOCs.
- These IOMMUs allow virtualization of the address space used by most
- cores within the multimedia subsystem.
- If unsure, say N here.
- # MSM IOMMUv1 support
- config MSM_IOMMU_V1
- bool "MSM IOMMUv1 Support"
- depends on ARCH_MSM8974 || ARCH_MPQ8092 || ARCH_MSM8226 || ARCH_APQ8084
- select IOMMU_API
- select MSM_IOMMU
- help
- Support for the IOMMUs (v1) found on certain Qualcomm SOCs.
- These IOMMUs allow virtualization of the address space used by most
- cores within the multimedia subsystem.
- If unsure, say N here.
- # MSM IOMMU sync lock support
- config MSM_IOMMU_SYNC
- bool "MSM IOMMU Sync Lock Support"
- depends on (ARCH_MSM8X60 || ARCH_MSM8960 || ARCH_APQ8064 || ARCH_MSM8930 || ARCH_MSM8610) && MSM_IOMMU_V0
- help
- Say Y here if you want the IOMMU to grab a remote spinlock to ensure
- synchronization between IOMMU accesses by CPU and other exectution
- environments in the SoC.
- If unsure, say N here.
- # MSM IOMMU CPU-GPU sync programming support
- config MSM_IOMMU_GPU_SYNC
- bool "MSM IOMMU CPU-GPU Sync Support"
- depends on (ARCH_MSM8X60 || ARCH_MSM8960 || ARCH_APQ8064 || ARCH_MSM8930) && MSM_IOMMU_V0
- select MSM_IOMMU_SYNC
- help
- Say Y here if you want to synchronize access to IOMMU configuration
- port between CPU and GPU. CPU will grab a remote spinlock before
- accessing IOMMU configuration registers and GPU will do the same.
- If unsure, say N here.
- config MSM_IOMMU_PMON
- bool "MSM IOMMU Perfomance Monitoring Support"
- depends on (ARCH_MSM8974 || ARCH_MSM8610 || ARCH_MSM8226) && MSM_IOMMU
- help
- Support for monitoring IOMMUs performance on certain Qualcomm SOCs.
- It captures TLB statistics per context bank of the IOMMU as an
- indication of its performance metric.
- If unsure, say N here.
- config IOMMU_PGTABLES_L2
- bool "Allow SMMU page tables in the L2 cache (Experimental)"
- depends on MSM_IOMMU && MMU && SMP && CPU_DCACHE_DISABLE=n
- help
- Improves TLB miss latency at the expense of potential L2 pollution.
- However, with large multimedia buffers, the TLB should mostly contain
- section mappings and TLB misses should be quite infrequent.
- Most people can probably say Y here.
- config MSM_IOMMU_VBIF_CHECK
- bool "Enable support for VBIF check when IOMMU gets stuck"
- depends on MSM_IOMMU
- help
- Enables an extra check in the IOMMU driver that logs debugging
- information when TLB sync or iommu halt issue occurs. This helps
- in debugging such issues.
- If unsure, say N here.
- config IOMMU_NON_SECURE
- bool "Turns on programming of secure SMMU by kernel"
- depends on MSM_IOMMU
- help
- Say Y here if you want the kernel to program all SMMUs regardless of
- whether SMMUs are secure or not. A secure SMMU is an SMMU that has
- its global address space programmed by the secure environment. In
- addition some of the context banks might be owned/programmed by the
- secure environment for a secure SMMU. Enabling this feature can be
- used during testing when the secure environment is not available
- and the kernel needs to program all the SMMUs.
- If unsure, say N here.
- # AMD IOMMU support
- config AMD_IOMMU
- bool "AMD IOMMU support"
- select SWIOTLB
- select PCI_MSI
- select PCI_ATS
- select PCI_PRI
- select PCI_PASID
- select IOMMU_API
- depends on X86_64 && PCI && ACPI
- ---help---
- With this option you can enable support for AMD IOMMU hardware in
- your system. An IOMMU is a hardware component which provides
- remapping of DMA memory accesses from devices. With an AMD IOMMU you
- can isolate the the DMA memory of different devices and protect the
- system from misbehaving device drivers or hardware.
- You can find out if your system has an AMD IOMMU if you look into
- your BIOS for an option to enable it or if you have an IVRS ACPI
- table.
- config AMD_IOMMU_STATS
- bool "Export AMD IOMMU statistics to debugfs"
- depends on AMD_IOMMU
- select DEBUG_FS
- ---help---
- This option enables code in the AMD IOMMU driver to collect various
- statistics about whats happening in the driver and exports that
- 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_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.
- These DMA remapping devices are reported via ACPI tables
- and include PCI device scope covered by these DMA
- remapping devices.
- config INTEL_IOMMU_DEFAULT_ON
- def_bool y
- 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 INTEL_IOMMU_BROKEN_GFX_WA
- bool "Workaround broken graphics drivers (going away soon)"
- 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
- option permits the IOMMU driver to set a unity map for
- all the OS-visible memory. Hence the driver can continue
- to use physical addresses for DMA, at least until this
- option is removed in the 2.6.32 kernel.
- config INTEL_IOMMU_FLOPPY_WA
- def_bool y
- 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 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_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.
- config TEGRA_IOMMU_SMMU
- bool "Tegra SMMU IOMMU Support"
- depends on ARCH_TEGRA_3x_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 SMMU (System Memory Management Unit)
- hardware included on Tegra SoCs.
- endif # IOMMU_SUPPORT
|