b170143ae1
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>
47 lines
1.3 KiB
Plaintext
47 lines
1.3 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
if ARCH_APPLE || COMPILE_TEST
|
|
|
|
menu "Apple SoC drivers"
|
|
|
|
config APPLE_PMGR_PWRSTATE
|
|
bool "Apple SoC PMGR power state control"
|
|
depends on PM
|
|
select REGMAP
|
|
select MFD_SYSCON
|
|
select PM_GENERIC_DOMAINS
|
|
select RESET_CONTROLLER
|
|
default ARCH_APPLE
|
|
help
|
|
The PMGR block in Apple SoCs provides high-level power state
|
|
controls for SoC devices. This driver manages them through the
|
|
generic power domain framework, and also provides reset support.
|
|
|
|
config APPLE_RTKIT
|
|
tristate "Apple RTKit co-processor IPC protocol"
|
|
depends on MAILBOX
|
|
depends on ARCH_APPLE || COMPILE_TEST
|
|
default ARCH_APPLE
|
|
help
|
|
Apple SoCs such as the M1 come with various co-processors running
|
|
their proprietary RTKit operating system. This option enables support
|
|
for the protocol library used to communicate with those. It is used
|
|
by various client drivers.
|
|
|
|
Say 'y' here if you have an Apple SoC.
|
|
|
|
config APPLE_SART
|
|
tristate "Apple SART DMA address filter"
|
|
depends on ARCH_APPLE || COMPILE_TEST
|
|
default ARCH_APPLE
|
|
help
|
|
Apple SART is a simple DMA address filter used on Apple SoCs such
|
|
as the M1. It is usually required for the NVMe coprocessor which does
|
|
not use a proper IOMMU.
|
|
|
|
Say 'y' here if you have an Apple SoC.
|
|
|
|
endmenu
|
|
|
|
endif
|