Kconfig (48e6f7652dd8c502005decb331910ca0d097c1a9) Kconfig (f616ab59c294b6ea6efa94f6139ea3eda2f52be0)
1# IOMMU_API always gets selected by whoever wants it.
2config IOMMU_API
3 bool
4
5menuconfig IOMMU_SUPPORT
6 bool "IOMMU Hardware Support"
7 depends on MMU
8 default y

--- 9 unchanged lines hidden (view full) ---

18
19# Selected by the actual pagetable implementations
20config IOMMU_IO_PGTABLE
21 bool
22
23config IOMMU_IO_PGTABLE_LPAE
24 bool "ARMv7/v8 Long Descriptor Format"
25 select IOMMU_IO_PGTABLE
1# IOMMU_API always gets selected by whoever wants it.
2config IOMMU_API
3 bool
4
5menuconfig IOMMU_SUPPORT
6 bool "IOMMU Hardware Support"
7 depends on MMU
8 default y

--- 9 unchanged lines hidden (view full) ---

18
19# Selected by the actual pagetable implementations
20config IOMMU_IO_PGTABLE
21 bool
22
23config IOMMU_IO_PGTABLE_LPAE
24 bool "ARMv7/v8 Long Descriptor Format"
25 select IOMMU_IO_PGTABLE
26 depends on ARM || ARM64 || (COMPILE_TEST && !GENERIC_ATOMIC64)
26 depends on HAS_DMA && (ARM || ARM64 || (COMPILE_TEST && !GENERIC_ATOMIC64))
27 help
28 Enable support for the ARM long descriptor pagetable format.
29 This allocator supports 4K/2M/1G, 16K/32M and 64K/512M page
30 sizes at both stage-1 and stage-2, as well as address spaces
31 up to 48-bits in size.
32
33config IOMMU_IO_PGTABLE_LPAE_SELFTEST
34 bool "LPAE selftests"
35 depends on IOMMU_IO_PGTABLE_LPAE
36 help
37 Enable self-tests for LPAE page table allocator. This performs
38 a series of page-table consistency checks during boot.
39
40 If unsure, say N here.
41
42config IOMMU_IO_PGTABLE_ARMV7S
43 bool "ARMv7/v8 Short Descriptor Format"
44 select IOMMU_IO_PGTABLE
27 help
28 Enable support for the ARM long descriptor pagetable format.
29 This allocator supports 4K/2M/1G, 16K/32M and 64K/512M page
30 sizes at both stage-1 and stage-2, as well as address spaces
31 up to 48-bits in size.
32
33config IOMMU_IO_PGTABLE_LPAE_SELFTEST
34 bool "LPAE selftests"
35 depends on IOMMU_IO_PGTABLE_LPAE
36 help
37 Enable self-tests for LPAE page table allocator. This performs
38 a series of page-table consistency checks during boot.
39
40 If unsure, say N here.
41
42config IOMMU_IO_PGTABLE_ARMV7S
43 bool "ARMv7/v8 Short Descriptor Format"
44 select IOMMU_IO_PGTABLE
45 depends on ARM || ARM64 || COMPILE_TEST
45 depends on HAS_DMA && (ARM || ARM64 || COMPILE_TEST)
46 help
47 Enable support for the ARM Short-descriptor pagetable format.
48 This supports 32-bit virtual and physical addresses mapped using
49 2-level tables with 4KB pages/1MB sections, and contiguous entries
50 for 64KB pages/16MB supersections if indicated by the IOMMU driver.
51
52config IOMMU_IO_PGTABLE_ARMV7S_SELFTEST
53 bool "ARMv7s selftests"

--- 87 unchanged lines hidden (view full) ---

141 bool
142
143config INTEL_IOMMU
144 bool "Support for Intel IOMMU using DMA Remapping Devices"
145 depends on PCI_MSI && ACPI && (X86 || IA64_GENERIC)
146 select DMA_DIRECT_OPS
147 select IOMMU_API
148 select IOMMU_IOVA
46 help
47 Enable support for the ARM Short-descriptor pagetable format.
48 This supports 32-bit virtual and physical addresses mapped using
49 2-level tables with 4KB pages/1MB sections, and contiguous entries
50 for 64KB pages/16MB supersections if indicated by the IOMMU driver.
51
52config IOMMU_IO_PGTABLE_ARMV7S_SELFTEST
53 bool "ARMv7s selftests"

--- 87 unchanged lines hidden (view full) ---

141 bool
142
143config INTEL_IOMMU
144 bool "Support for Intel IOMMU using DMA Remapping Devices"
145 depends on PCI_MSI && ACPI && (X86 || IA64_GENERIC)
146 select DMA_DIRECT_OPS
147 select IOMMU_API
148 select IOMMU_IOVA
149 select NEED_DMA_MAP_STATE
149 select DMAR_TABLE
150 help
151 DMA remapping (DMAR) devices support enables independent address
152 translations for Direct Memory Access (DMA) from devices.
153 These DMA remapping devices are reported via ACPI tables
154 and include PCI device scope covered by these DMA
155 remapping devices.
156

--- 214 unchanged lines hidden (view full) ---

371 DMA memory accesses for the multimedia subsystem.
372
373 if unsure, say N here.
374
375config QCOM_IOMMU
376 # Note: iommu drivers cannot (yet?) be built as modules
377 bool "Qualcomm IOMMU Support"
378 depends on ARCH_QCOM || (COMPILE_TEST && !GENERIC_ATOMIC64)
150 select DMAR_TABLE
151 help
152 DMA remapping (DMAR) devices support enables independent address
153 translations for Direct Memory Access (DMA) from devices.
154 These DMA remapping devices are reported via ACPI tables
155 and include PCI device scope covered by these DMA
156 remapping devices.
157

--- 214 unchanged lines hidden (view full) ---

372 DMA memory accesses for the multimedia subsystem.
373
374 if unsure, say N here.
375
376config QCOM_IOMMU
377 # Note: iommu drivers cannot (yet?) be built as modules
378 bool "Qualcomm IOMMU Support"
379 depends on ARCH_QCOM || (COMPILE_TEST && !GENERIC_ATOMIC64)
380 depends on HAS_DMA
379 select IOMMU_API
380 select IOMMU_IO_PGTABLE_LPAE
381 select ARM_DMA_USE_IOMMU
382 help
383 Support for IOMMU on certain Qualcomm SoCs.
384
385endif # IOMMU_SUPPORT
381 select IOMMU_API
382 select IOMMU_IO_PGTABLE_LPAE
383 select ARM_DMA_USE_IOMMU
384 help
385 Support for IOMMU on certain Qualcomm SoCs.
386
387endif # IOMMU_SUPPORT