File Index
Files and directories
Sign in
FILE

Kconfig

File preview with syntax highlighting.

linux-6.19.14/drivers/iommu/arm/Kconfig KCONFIG
  1# SPDX-License-Identifier: GPL-2.0-only
  2# ARM IOMMU support
  3config ARM_SMMU
  4	tristate "ARM Ltd. System MMU (SMMU) Support"
  5	depends on ARM64 || ARM || COMPILE_TEST
  6	depends on !GENERIC_ATOMIC64	# for IOMMU_IO_PGTABLE_LPAE
  7	select IOMMU_API
  8	select IOMMU_IO_PGTABLE_LPAE
  9	select ARM_DMA_USE_IOMMU if ARM
 10	help
 11	  Support for implementations of the ARM System MMU architecture
 12	  versions 1 and 2.
 13
 14	  Say Y here if your SoC includes an IOMMU device implementing
 15	  the ARM SMMU architecture.
 16
 17if ARM_SMMU
 18config ARM_SMMU_LEGACY_DT_BINDINGS
 19	bool "Support the legacy \"mmu-masters\" devicetree bindings"
 20	depends on ARM_SMMU=y && OF
 21	help
 22	  Support for the badly designed and deprecated "mmu-masters"
 23	  devicetree bindings. This allows some DMA masters to attach
 24	  to the SMMU but does not provide any support via the DMA API.
 25	  If you're lucky, you might be able to get VFIO up and running.
 26
 27	  If you say Y here then you'll make me very sad. Instead, say N
 28	  and move your firmware to the utopian future that was 2016.
 29
 30config ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT
 31	bool "Disable unmatched stream bypass by default" if EXPERT
 32	default y
 33	help
 34	  If your firmware is broken and fails to describe StreamIDs which
 35	  Linux should know about in order to manage the SMMU correctly and
 36	  securely, and you don't want to boot with the 'arm-smmu.disable_bypass=0'
 37	  command line parameter, then as a last resort you can turn it off
 38	  by default here. But don't. This option may be removed at any time.
 39
 40	  Note that 'arm-smmu.disable_bypass=1' will still take precedence.
 41
 42config ARM_SMMU_MMU_500_CPRE_ERRATA
 43	bool "Enable errata workaround for CPRE in SMMU reset path"
 44	default y
 45	help
 46	  Say Y here (by default) to apply workaround to disable
 47	  MMU-500's next-page prefetcher for sake of 4 known errata.
 48
 49	  Say N here only when it is sure that any errata related to
 50	  prefetch enablement are not applicable on the platform.
 51	  Refer silicon-errata.rst for info on errata IDs.
 52
 53config ARM_SMMU_QCOM
 54	def_tristate y
 55	depends on ARCH_QCOM
 56	select QCOM_SCM
 57	help
 58	  When running on a Qualcomm platform that has the custom variant
 59	  of the ARM SMMU, this needs to be built into the SMMU driver.
 60
 61config ARM_SMMU_QCOM_DEBUG
 62	bool "ARM SMMU QCOM implementation defined debug support"
 63	depends on ARM_SMMU_QCOM=y
 64	help
 65	  Support for implementation specific debug features in ARM SMMU
 66	  hardware found in QTI platforms. This include support for
 67	  the Translation Buffer Units (TBU) that can be used to obtain
 68	  additional information when debugging memory management issues
 69	  like context faults.
 70
 71	  Say Y here to enable debug for issues such as context faults
 72	  or TLB sync timeouts which requires implementation defined
 73	  register dumps.
 74endif
 75
 76config ARM_SMMU_V3
 77	tristate "ARM Ltd. System MMU Version 3 (SMMUv3) Support"
 78	depends on ARM64
 79	select IOMMU_API
 80	select IOMMU_IO_PGTABLE_LPAE
 81	select GENERIC_MSI_IRQ
 82	select IOMMUFD_DRIVER if IOMMUFD
 83	help
 84	  Support for implementations of the ARM System MMU architecture
 85	  version 3 providing translation support to a PCIe root complex.
 86
 87	  Say Y here if your system includes an IOMMU device implementing
 88	  the ARM SMMUv3 architecture.
 89
 90if ARM_SMMU_V3
 91config ARM_SMMU_V3_SVA
 92	bool "Shared Virtual Addressing support for the ARM SMMUv3"
 93	select IOMMU_SVA
 94	select IOMMU_IOPF
 95	select MMU_NOTIFIER
 96	help
 97	  Support for sharing process address spaces with devices using the
 98	  SMMUv3.
 99
100	  Say Y here if your system supports SVA extensions such as PCIe PASID
101	  and PRI.
102
103config ARM_SMMU_V3_IOMMUFD
104	bool "Enable IOMMUFD features for ARM SMMUv3 (EXPERIMENTAL)"
105	depends on IOMMUFD
106	help
107	  Support for IOMMUFD features intended to support virtual machines
108	  with accelerated virtual IOMMUs.
109
110	  Say Y here if you are doing development and testing on this feature.
111
112config ARM_SMMU_V3_KUNIT_TEST
113	tristate "KUnit tests for arm-smmu-v3 driver"  if !KUNIT_ALL_TESTS
114	depends on KUNIT
115	depends on ARM_SMMU_V3_SVA
116	default KUNIT_ALL_TESTS
117	help
118	  Enable this option to unit-test arm-smmu-v3 driver functions.
119
120	  If unsure, say N.
121
122config TEGRA241_CMDQV
123	bool "NVIDIA Tegra241 CMDQ-V extension support for ARM SMMUv3"
124	depends on ACPI
125	help
126	  Support for NVIDIA CMDQ-Virtualization extension for ARM SMMUv3. The
127	  CMDQ-V extension is similar to v3.3 ECMDQ for multi command queues
128	  support, except with virtualization capabilities.
129
130	  Say Y here if your system is NVIDIA Tegra241 (Grace) or it has the same
131	  CMDQ-V extension.
132endif
133
134config QCOM_IOMMU
135	# Note: iommu drivers cannot (yet?) be built as modules
136	bool "Qualcomm IOMMU Support"
137	depends on ARCH_QCOM || COMPILE_TEST
138	depends on !GENERIC_ATOMIC64	# for IOMMU_IO_PGTABLE_LPAE
139	select QCOM_SCM
140	select IOMMU_API
141	select IOMMU_IO_PGTABLE_LPAE
142	select ARM_DMA_USE_IOMMU
143	help
144	  Support for IOMMU on certain Qualcomm SoCs.
~/ Read-only file preview.