arm64: dts: broadcom: bcm2712-rpi: mark /soc/firmware node as 32-bit
PATCH 1/1 arm64: dts: broadcom: bcm2712-rpi: mark /soc/firmware node as 32-bit
From: Arnd Bergmann <[email protected]>
Moving /soc/firmware to /soc/firmware/rpi-firmware resulted in a build time warning:
arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi:200.4-15: Warning (dma_ranges_format): /soc@107c000000/firmware/rpi-firmware:dma-ranges: empty "dma-ranges" property but its #address-cells (1) differs from /soc@107c000000/firmware (2)
The problem is that while both /soc and /soc/firmware/rpi-firmware are limited to 32-bit DMA and MMIO addressing, the intermediate /soc/firmware now gets the default 64-bit addressing, which requires an explicit translation of the DMA addresses of its 32-bit children.
Mark this one as 32-bit as well for simplicity. Note that this does limit any other kind of firmware to 32-bit address translation as well, which might not be ideal in case any of it runs in 64-bit mode. A better solution may be to move it out of /soc altogether.
---
I'm a bit confused by the changelog test of the e3b22edda733 commit, which does not appear to match what it actually does. Maybe the intention was to move /soc/firmware to /firmware/rpi-firmware instead of /soc/firmware/rpi-firmware? This would also require an explict dma address translation though.
--- arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi | 4 ++++ 1 file changed, 4 insertions(+)
arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi +4 -0
@@ -191,6 +191,10 @@ wifi: wifi@1 { &soc { firmware { + #address-cells = <1>; + #size-cells = <1>; + dma-ranges; + firmware: rpi-firmware { compatible = "raspberrypi,bcm2835-firmware", "simple-mfd"; #address-cells = <1>;
Signature · 1 line
2.39.5