@@ -192,6 +192,7 @@ config MSM_IOMMU
192
192
If unsure, say N here.
193
193
194
194
source "drivers/iommu/amd/Kconfig"
195
+ source "drivers/iommu/arm/Kconfig"
195
196
source "drivers/iommu/intel/Kconfig"
196
197
source "drivers/iommu/iommufd/Kconfig"
197
198
source "drivers/iommu/riscv/Kconfig"
@@ -314,150 +315,6 @@ config APPLE_DART
314
315
315
316
Say Y here if you are using an Apple SoC.
316
317
317
- # ARM IOMMU support
318
- config ARM_SMMU
319
- tristate "ARM Ltd. System MMU (SMMU) Support"
320
- depends on ARM64 || ARM || COMPILE_TEST
321
- depends on !GENERIC_ATOMIC64 # for IOMMU_IO_PGTABLE_LPAE
322
- select IOMMU_API
323
- select IOMMU_IO_PGTABLE_LPAE
324
- select ARM_DMA_USE_IOMMU if ARM
325
- help
326
- Support for implementations of the ARM System MMU architecture
327
- versions 1 and 2.
328
-
329
- Say Y here if your SoC includes an IOMMU device implementing
330
- the ARM SMMU architecture.
331
-
332
- config ARM_SMMU_LEGACY_DT_BINDINGS
333
- bool "Support the legacy \"mmu-masters\" devicetree bindings"
334
- depends on ARM_SMMU=y && OF
335
- help
336
- Support for the badly designed and deprecated "mmu-masters"
337
- devicetree bindings. This allows some DMA masters to attach
338
- to the SMMU but does not provide any support via the DMA API.
339
- If you're lucky, you might be able to get VFIO up and running.
340
-
341
- If you say Y here then you'll make me very sad. Instead, say N
342
- and move your firmware to the utopian future that was 2016.
343
-
344
- config ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT
345
- bool "Default to disabling bypass on ARM SMMU v1 and v2"
346
- depends on ARM_SMMU
347
- default y
348
- help
349
- Say Y here to (by default) disable bypass streams such that
350
- incoming transactions from devices that are not attached to
351
- an iommu domain will report an abort back to the device and
352
- will not be allowed to pass through the SMMU.
353
-
354
- Any old kernels that existed before this KConfig was
355
- introduced would default to _allowing_ bypass (AKA the
356
- equivalent of NO for this config). However the default for
357
- this option is YES because the old behavior is insecure.
358
-
359
- There are few reasons to allow unmatched stream bypass, and
360
- even fewer good ones. If saying YES here breaks your board
361
- you should work on fixing your board. This KConfig option
362
- is expected to be removed in the future and we'll simply
363
- hardcode the bypass disable in the code.
364
-
365
- NOTE: the kernel command line parameter
366
- 'arm-smmu.disable_bypass' will continue to override this
367
- config.
368
-
369
- config ARM_SMMU_MMU_500_CPRE_ERRATA
370
- bool "Enable errata workaround for CPRE in SMMU reset path"
371
- depends on ARM_SMMU
372
- default y
373
- help
374
- Say Y here (by default) to apply workaround to disable
375
- MMU-500's next-page prefetcher for sake of 4 known errata.
376
-
377
- Say N here only when it is sure that any errata related to
378
- prefetch enablement are not applicable on the platform.
379
- Refer silicon-errata.rst for info on errata IDs.
380
-
381
- config ARM_SMMU_QCOM
382
- def_tristate y
383
- depends on ARM_SMMU && ARCH_QCOM
384
- select QCOM_SCM
385
- help
386
- When running on a Qualcomm platform that has the custom variant
387
- of the ARM SMMU, this needs to be built into the SMMU driver.
388
-
389
- config ARM_SMMU_QCOM_DEBUG
390
- bool "ARM SMMU QCOM implementation defined debug support"
391
- depends on ARM_SMMU_QCOM=y
392
- help
393
- Support for implementation specific debug features in ARM SMMU
394
- hardware found in QTI platforms. This include support for
395
- the Translation Buffer Units (TBU) that can be used to obtain
396
- additional information when debugging memory management issues
397
- like context faults.
398
-
399
- Say Y here to enable debug for issues such as context faults
400
- or TLB sync timeouts which requires implementation defined
401
- register dumps.
402
-
403
- config ARM_SMMU_V3
404
- tristate "ARM Ltd. System MMU Version 3 (SMMUv3) Support"
405
- depends on ARM64
406
- select IOMMU_API
407
- select IOMMU_IO_PGTABLE_LPAE
408
- select GENERIC_MSI_IRQ
409
- select IOMMUFD_DRIVER if IOMMUFD
410
- help
411
- Support for implementations of the ARM System MMU architecture
412
- version 3 providing translation support to a PCIe root complex.
413
-
414
- Say Y here if your system includes an IOMMU device implementing
415
- the ARM SMMUv3 architecture.
416
-
417
- if ARM_SMMU_V3
418
- config ARM_SMMU_V3_SVA
419
- bool "Shared Virtual Addressing support for the ARM SMMUv3"
420
- select IOMMU_SVA
421
- select IOMMU_IOPF
422
- select MMU_NOTIFIER
423
- help
424
- Support for sharing process address spaces with devices using the
425
- SMMUv3.
426
-
427
- Say Y here if your system supports SVA extensions such as PCIe PASID
428
- and PRI.
429
-
430
- config ARM_SMMU_V3_IOMMUFD
431
- bool "Enable IOMMUFD features for ARM SMMUv3 (EXPERIMENTAL)"
432
- depends on IOMMUFD
433
- help
434
- Support for IOMMUFD features intended to support virtual machines
435
- with accelerated virtual IOMMUs.
436
-
437
- Say Y here if you are doing development and testing on this feature.
438
-
439
- config ARM_SMMU_V3_KUNIT_TEST
440
- tristate "KUnit tests for arm-smmu-v3 driver" if !KUNIT_ALL_TESTS
441
- depends on KUNIT
442
- depends on ARM_SMMU_V3_SVA
443
- default KUNIT_ALL_TESTS
444
- help
445
- Enable this option to unit-test arm-smmu-v3 driver functions.
446
-
447
- If unsure, say N.
448
-
449
- config TEGRA241_CMDQV
450
- bool "NVIDIA Tegra241 CMDQ-V extension support for ARM SMMUv3"
451
- depends on ACPI
452
- help
453
- Support for NVIDIA CMDQ-Virtualization extension for ARM SMMUv3. The
454
- CMDQ-V extension is similar to v3.3 ECMDQ for multi command queues
455
- support, except with virtualization capabilities.
456
-
457
- Say Y here if your system is NVIDIA Tegra241 (Grace) or it has the same
458
- CMDQ-V extension.
459
- endif
460
-
461
318
config S390_IOMMU
462
319
def_bool y if S390 && PCI
463
320
depends on S390 && PCI
@@ -494,18 +351,6 @@ config MTK_IOMMU_V1
494
351
495
352
if unsure, say N here.
496
353
497
- config QCOM_IOMMU
498
- # Note: iommu drivers cannot (yet?) be built as modules
499
- bool "Qualcomm IOMMU Support"
500
- depends on ARCH_QCOM || COMPILE_TEST
501
- depends on !GENERIC_ATOMIC64 # for IOMMU_IO_PGTABLE_LPAE
502
- select QCOM_SCM
503
- select IOMMU_API
504
- select IOMMU_IO_PGTABLE_LPAE
505
- select ARM_DMA_USE_IOMMU
506
- help
507
- Support for IOMMU on certain Qualcomm SoCs.
508
-
509
354
config HYPERV_IOMMU
510
355
bool "Hyper-V IRQ Handling"
511
356
depends on HYPERV && X86
0 commit comments