• Sven Peter's avatar
    soc: apple: Add SART driver · b170143a
    Sven Peter authored
    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: default avatarHector Martin <marcan@marcan.st>
    Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarHector Martin <marcan@marcan.st>
    Signed-off-by: default avatarSven Peter <sven@svenpeter.dev>
    b170143a
Makefile 248 Bytes