iommu/arm-smmu: add NVIDIA implementation for ARM MMU-500 usage
authorKrishna Reddy <vdumpa@nvidia.com>
Sat, 18 Jul 2020 19:34:55 +0000 (12:34 -0700)
committerWill Deacon <will@kernel.org>
Mon, 20 Jul 2020 08:30:50 +0000 (09:30 +0100)
commitaab5a1c882760a5bc990b14e5c0c2ee4dab5f1ac
tree66eaaf99f606d1050731cb8b4a369bfc04b47e08
parent6c019f4e697ebed2225b20cc5d6276673834853d
iommu/arm-smmu: add NVIDIA implementation for ARM MMU-500 usage

NVIDIA's Tegra194 SoC has three ARM MMU-500 instances.
It uses two of the ARM MMU-500s together to interleave IOVA
accesses across them and must be programmed identically.
This implementation supports programming the two ARM MMU-500s
that must be programmed identically.

The third ARM MMU-500 instance is supported by standard
arm-smmu.c driver itself.

Signed-off-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Nicolin Chen <nicoleotsuka@gmail.com>
Reviewed-by: Pritesh Raithatha <praithatha@nvidia.com>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Reviewed-by: Thierry Reding <thierry.reding@gmail.com>
Link: https://lore.kernel.org/r/20200718193457.30046-4-vdumpa@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
MAINTAINERS
drivers/iommu/Makefile
drivers/iommu/arm-smmu-impl.c
drivers/iommu/arm-smmu-nvidia.c [new file with mode: 0644]
drivers/iommu/arm-smmu.c
drivers/iommu/arm-smmu.h