Skip to content

Commit 4100b8c

Browse files
mripardjoergroedel
authored andcommitted
iommu: Add Allwinner H6 IOMMU driver
The Allwinner H6 has introduced an IOMMU for a few DMA controllers, mostly video related: the display engine, the video decoders / encoders, the camera capture controller, etc. The design is pretty simple compared to other IOMMUs found in SoCs: there's a single instance, controlling all the masters, with a single address space. It also features a performance monitoring unit that allows to retrieve various informations (per-master and global TLB accesses, hits and misses, access latency, etc) that isn't supported at the moment. Signed-off-by: Maxime Ripard <[email protected]> Link: https://lore.kernel.org/r/d122a8670361e36fc26b4ce2674a2223d30dc4cc.1589378833.git-series.maxime@cerno.tech Signed-off-by: Joerg Roedel <[email protected]>
1 parent db7d3cb commit 4100b8c

File tree

3 files changed

+1037
-0
lines changed

3 files changed

+1037
-0
lines changed

drivers/iommu/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,15 @@ config ROCKCHIP_IOMMU
303303
Say Y here if you are using a Rockchip SoC that includes an IOMMU
304304
device.
305305

306+
config SUN50I_IOMMU
307+
bool "Allwinner H6 IOMMU Support"
308+
depends on ARCH_SUNXI || COMPILE_TEST
309+
select ARM_DMA_USE_IOMMU
310+
select IOMMU_API
311+
select IOMMU_DMA
312+
help
313+
Support for the IOMMU introduced in the Allwinner H6 SoCs.
314+
306315
config TEGRA_IOMMU_GART
307316
bool "Tegra GART IOMMU Support"
308317
depends on ARCH_TEGRA_2x_SOC

drivers/iommu/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ obj-$(CONFIG_MTK_IOMMU_V1) += mtk_iommu_v1.o
2929
obj-$(CONFIG_OMAP_IOMMU) += omap-iommu.o
3030
obj-$(CONFIG_OMAP_IOMMU_DEBUG) += omap-iommu-debug.o
3131
obj-$(CONFIG_ROCKCHIP_IOMMU) += rockchip-iommu.o
32+
obj-$(CONFIG_SUN50I_IOMMU) += sun50i-iommu.o
3233
obj-$(CONFIG_TEGRA_IOMMU_GART) += tegra-gart.o
3334
obj-$(CONFIG_TEGRA_IOMMU_SMMU) += tegra-smmu.o
3435
obj-$(CONFIG_EXYNOS_IOMMU) += exynos-iommu.o

0 commit comments

Comments
 (0)