arm64: dts: juno: Remove GICv2m dma-range
authorRobin Murphy <robin.murphy@arm.com>
Mon, 24 Jan 2022 17:57:01 +0000 (17:57 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Mar 2022 18:12:49 +0000 (19:12 +0100)
commitf6cabb721c5b0dfe85c827aaa3e47361beae2699
tree51ddd345a7e54d66596b624cf46ebab88939fb7b
parent3411613611a5cddf7e80908010dc87cb527dd13b
arm64: dts: juno: Remove GICv2m dma-range

[ Upstream commit 31eeb6b09f4053f32a30ce9fbcdfca31f713028d ]

Although it is painstakingly honest to describe all 3 PCI windows in
"dma-ranges", it misses the the subtle distinction that the window for
the GICv2m range is normally programmed for Device memory attributes
rather than Normal Cacheable like the DRAM windows. Since MMU-401 only
offers stage 2 translation, this means that when the PCI SMMU is
enabled, accesses through that IPA range unexpectedly lose coherency if
mapped as cacheable at the SMMU, due to the attribute combining rules.
Since an extra 256KB is neither here nor there when we still have 10GB
worth of usable address space, rather than attempting to describe and
cope with this detail let's just remove the offending range. If the SMMU
is not used then it makes no difference anyway.

Link: https://lore.kernel.org/r/856c3f7192c6c3ce545ba67462f2ce9c86ed6b0c.1643046936.git.robin.murphy@arm.com
Fixes: 4ac4d146cb63 ("arm64: dts: juno: Describe PCI dma-ranges")
Reported-by: Anders Roxell <anders.roxell@linaro.org>
Acked-by: Liviu Dudau <liviu.dudau@arm.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/arm64/boot/dts/arm/juno-base.dtsi