iommu/arm-smmu: tegra: Implement SID override programming
authorThierry Reding <treding@nvidia.com>
Thu, 3 Jun 2021 16:46:28 +0000 (18:46 +0200)
committerKrzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Fri, 11 Jun 2021 06:44:52 +0000 (08:44 +0200)
commit8eb68595475ac5fcaaa3718a173283df48cb4ef1
treedb628cc3b492013a26ad99162412ce38d0d71561
parent7ecbf253f8d64c08de28d16a66e3abbe873f6c9f
iommu/arm-smmu: tegra: Implement SID override programming

The secure firmware keeps some SID override registers set as passthrough
in order to allow devices such as the display controller to operate with
no knowledge of SMMU translations until an operating system driver takes
over. This is needed in order to seamlessly transition from the firmware
framebuffer to the OS framebuffer.

Upon successfully attaching a device to the SMMU and in the process
creating identity mappings for memory regions that are being accessed,
the Tegra implementation will call into the memory controller driver to
program the override SIDs appropriately.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://lore.kernel.org/r/20210603164632.1000458-6-thierry.reding@gmail.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
drivers/iommu/arm/arm-smmu/arm-smmu-nvidia.c