[PATCH] arm64: dts: juno: Remove GICv2m dma-range
Liviu Dudau
liviu.dudau at arm.com
Tue Jan 25 07:24:24 PST 2022
On Mon, Jan 24, 2022 at 05:57:01PM +0000, Robin Murphy wrote:
> 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.
>
> Fixes: 4ac4d146cb63 ("arm64: dts: juno: Describe PCI dma-ranges")
> Reported-by: Anders Roxell <anders.roxell at linaro.org>
> Signed-off-by: Robin Murphy <robin.murphy at arm.com>
Looks like a good idea.
Acked-by: Liviu Dudau <liviu.dudau at arm.com>
Sudeep, can you pick this one up through your tree?
Best regards,
Liviu
> ---
>
> Sorry it took a while to catch up on this...
>
> arch/arm64/boot/dts/arm/juno-base.dtsi | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/arm/juno-base.dtsi b/arch/arm64/boot/dts/arm/juno-base.dtsi
> index 6288e104a089..a2635b14da30 100644
> --- a/arch/arm64/boot/dts/arm/juno-base.dtsi
> +++ b/arch/arm64/boot/dts/arm/juno-base.dtsi
> @@ -543,8 +543,7 @@ pcie_ctlr: pcie at 40000000 {
> <0x02000000 0x00 0x50000000 0x00 0x50000000 0x0 0x08000000>,
> <0x42000000 0x40 0x00000000 0x40 0x00000000 0x1 0x00000000>;
> /* Standard AXI Translation entries as programmed by EDK2 */
> - dma-ranges = <0x02000000 0x0 0x2c1c0000 0x0 0x2c1c0000 0x0 0x00040000>,
> - <0x02000000 0x0 0x80000000 0x0 0x80000000 0x0 0x80000000>,
> + dma-ranges = <0x02000000 0x0 0x80000000 0x0 0x80000000 0x0 0x80000000>,
> <0x43000000 0x8 0x00000000 0x8 0x00000000 0x2 0x00000000>;
> #interrupt-cells = <1>;
> interrupt-map-mask = <0 0 0 7>;
> --
> 2.28.0.dirty
>
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯
More information about the linux-arm-kernel
mailing list