drivers: iommu: Add BCM2712 IOMMU
authorNick Hollinghurst <nick.hollinghurst@raspberrypi.com>
Thu, 11 May 2023 15:37:34 +0000 (16:37 +0100)
committerDom Cobley <popcornmix@gmail.com>
Mon, 19 Feb 2024 11:34:52 +0000 (11:34 +0000)
commitdccf09d9019d5a98791c4a92800487ee4c5b3855
treebc806b06f302d9f43aa87e43d397c5e98ee31233
parent021aaaaf397f537183dda8dd2e21271da0ffb31f
drivers: iommu: Add BCM2712 IOMMU

Add a driver for BCM2712 IOMMUs.
There is a small driver for the Shared IOMMU TLB Cache.
Each IOMMU instance is a separate device.

IOMMUs are set up with a "pass-through" range covering
the lowest 40BGytes (which should cover all of SDRAM)
for the benefit of non-IOMMU-aware devices that share
a physical IOMMU; and translation for addresses in the
range 40GB to 42GB.

An optional parameter adds a DMA offset (which otherwise
would be lost?) to virtual addresses for DMA masters on a
bus such as PCIe.

Signed-off-by: Nick Hollinghurst <nick.hollinghurst@raspberrypi.com>
drivers/iommu/Kconfig
drivers/iommu/Makefile
drivers/iommu/bcm2712-iommu-cache.c [new file with mode: 0644]
drivers/iommu/bcm2712-iommu.c [new file with mode: 0644]
drivers/iommu/bcm2712-iommu.h [new file with mode: 0644]