Subject: Re: [PATCH] ARM: dts: bcm2711: fix soc's node dma-ranges

From: Florian Fainelli <[email-masked]>
Date: Thu, 5 Dec 2019 16:08:08 -0800

On 12/4/19 4:56 AM, Nicolas Saenz Julienne wrote:
> Raspberry Pi's firmware has a feature to select how much memory to
> reserve for its GPU called 'gpu_mem'. The possible values go from 16MB
> to 944MB, with a default of 64MB. This memory resides in the topmost
> part of the lower 1GB memory area and grows bigger expanding towards the
> begging of memory.
> 
> It turns out that with low 'gpu_mem' values (16MB and 32MB) the size of
> the memory available to the system in the lower 1GB area can outgrow the
> interconnect's dma-range as its size was selected based on the maximum
> system memory available given the default gpu_mem configuration. This
> makes that memory slice unavailable for DMA. And may cause nasty kernel
> warnings if CMA happens to include it.
> 
> Change soc's dma-ranges to really reflect it's HW limitation, which is
> being able to only DMA to the lower 1GB area.
> 
> Fixes: 7dbe8c62ceeb ("ARM: dts: Add minimal Raspberry Pi 4 support")
> Signed-off-by: Nicolas Saenz Julienne <[email-masked]>
> ---
> 
> NOTE: I'd appreciate if someone from the RPi foundation commented on
> this as it's something that I'll propose to be backported to their tree.

I don't think our additional DTS changes will be merged until -rc1 is
cut, so we have some time to figure this one out. Thanks

> 
>  arch/arm/boot/dts/bcm2711.dtsi | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi
> index 5b61cd915f2b..d6a0e350b7b4 100644
> --- a/arch/arm/boot/dts/bcm2711.dtsi
> +++ b/arch/arm/boot/dts/bcm2711.dtsi
> @@ -43,7 +43,7 @@ soc {
>  			 <0x7c000000  0x0 0xfc000000  0x02000000>,
>  			 <0x40000000  0x0 0xff800000  0x00800000>;
>  		/* Emulate a contiguous 30-bit address range for DMA */
> -		dma-ranges = <0xc0000000  0x0 0x00000000  0x3c000000>;
> +		dma-ranges = <0xc0000000  0x0 0x00000000  0x40000000>;
>  
>  		/*
>  		 * This node is the provider for the enable-method for
> 

-- 
Florian

_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel