OpenCloudOS-Kernel/drivers/soc/apple
Sven Peter b170143ae1 soc: apple: Add SART driver
The NVMe co-processor on the Apple M1 uses a DMA address filter called
SART for some DMA transactions. This adds a simple driver used to
configure the memory regions from which DMA transactions are allowed.

Unlike a real IOMMU, SART does not support any pagetables and can't be
implemented inside the IOMMU subsystem using iommu_ops.

It also can't be implemented using dma_map_ops since not all DMA
transactions of the NVMe controller are filtered by SART.
Instead, most buffers have to be registered using the integrated NVMe
IOMMU and we can't have two separate dma_map_ops implementations for a
single device.

Co-developed-by: Hector Martin <marcan@marcan.st>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Hector Martin <marcan@marcan.st>
Signed-off-by: Sven Peter <sven@svenpeter.dev>
2022-05-02 17:24:45 +02:00
..
Kconfig soc: apple: Add SART driver 2022-05-02 17:24:45 +02:00
Makefile soc: apple: Add SART driver 2022-05-02 17:24:45 +02:00
apple-pmgr-pwrstate.c
rtkit-crashlog.c soc: apple: Add RTKit IPC library 2022-05-01 16:55:06 +02:00
rtkit-internal.h soc: apple: Add RTKit IPC library 2022-05-01 16:55:06 +02:00
rtkit.c soc: apple: Add RTKit IPC library 2022-05-01 16:55:06 +02:00
sart.c soc: apple: Add SART driver 2022-05-02 17:24:45 +02:00