Re: [PATCH 1/2] ARM: dts: bcm2711: force CMA into first GB of memory

From: Florian Fainelli
Date: Mon Nov 04 2019 - 13:49:08 EST


On 11/4/19 9:51 AM, Florian Fainelli wrote:
> On 11/4/19 9:09 AM, Stefan Wahren wrote:
>
> [snip]
>
>>> + reserved-memory {
>>> + #address-cells = <2>;
>>> + #size-cells = <1>;
>>> + ranges;
>>> +
>>> + /*
>>> + * arm64 reserves the CMA by default somewhere in ZONE_DMA32,
>>> + * that's not good enough for the Raspberry Pi 4 as some
>>> + * devices can only address the lower 1G of memory (ZONE_DMA).
>>> + */
>>> + linux,cma {
>>> + compatible = "shared-dma-pool";
>>> + size = <0x2000000>; /* 32MB */
>>> + alloc-ranges = <0x0 0x00000000 0x40000000>;
>>> + reusable;
>>> + linux,cma-default;
>>> + };
>>> + };
>>> +
>>
>> i think this is a SoC-specific issue not a board specifc one. Please
>> move this to bcm2711.dtsi
>
> This sounds like a possibly fragile solution if someone changes
> CONFIG_CMA_SIZE_MBYTES to a value greater than 32MB no?
>
> I know we don't want machine descriptors for ARM64 kernels, but since
> there is already a specific 2711 machine compatible string check, maybe
> you could use that as well for determining whether arm64_dma_phys_limit
> or arm64_dma32_phys_limit should be chosen?

This last sentence was referring to an earlier version of another patch
series, this is not being done right now, although ARCH_BCM2835 does
forcibly select ZONE_DMA. Nevermind then, I do not see a cleaner
solution right now either.
--
Florian