Commit 46d1fb07 authored by Sven Peter's avatar Sven Peter Committed by Joerg Roedel
Browse files

iommu/dart: Add DART iommu driver



Apple's new SoCs use iommus for almost all peripherals. These Device
Address Resolution Tables must be setup before these peripherals can
act as DMA masters.

Tested-by: default avatarAlyssa Rosenzweig <alyssa@rosenzweig.io>
Signed-off-by: default avatarSven Peter <sven@svenpeter.dev>
Link: https://lore.kernel.org/r/20210803121651.61594-4-sven@svenpeter.dev


Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 9d9cafb4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1267,6 +1267,7 @@ M: Sven Peter <sven@svenpeter.dev>
L:	iommu@lists.linux-foundation.org
S:	Maintained
F:	Documentation/devicetree/bindings/iommu/apple,dart.yaml
F:	drivers/iommu/apple-dart.c
APPLE SMC DRIVER
M:	Henrik Rydberg <rydberg@bitmath.org>
+14 −0
Original line number Diff line number Diff line
@@ -290,6 +290,20 @@ config SPAPR_TCE_IOMMU
	  Enables bits of IOMMU API required by VFIO. The iommu_ops
	  is not implemented as it is not necessary for VFIO.

config APPLE_DART
	tristate "Apple DART IOMMU Support"
	depends on ARM64 || (COMPILE_TEST && !GENERIC_ATOMIC64)
	select IOMMU_API
	select IOMMU_IO_PGTABLE_LPAE
	default ARCH_APPLE
	help
	  Support for Apple DART (Device Address Resolution Table) IOMMUs
	  found in Apple ARM SoCs like the M1.
	  This IOMMU is required for most peripherals using DMA to access
	  the main memory.

	  Say Y here if you are using an Apple SoC.

# ARM IOMMU support
config ARM_SMMU
	tristate "ARM Ltd. System MMU (SMMU) Support"
+1 −0
Original line number Diff line number Diff line
@@ -29,3 +29,4 @@ obj-$(CONFIG_HYPERV_IOMMU) += hyperv-iommu.o
obj-$(CONFIG_VIRTIO_IOMMU) += virtio-iommu.o
obj-$(CONFIG_IOMMU_SVA_LIB) += iommu-sva-lib.o io-pgfault.o
obj-$(CONFIG_SPRD_IOMMU) += sprd-iommu.o
obj-$(CONFIG_APPLE_DART) += apple-dart.o
+923 −0

File added.

Preview size limit exceeded, changes collapsed.