]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ARM: dts: rockchip: Add #{address,size}-cells to Chromium-based /firmware
authorBrian Norris <briannorris@chromium.org>
Tue, 28 Apr 2026 20:06:54 +0000 (13:06 -0700)
committerHeiko Stuebner <heiko@sntech.de>
Tue, 5 May 2026 17:26:18 +0000 (19:26 +0200)
Chromium/Depthcharge bootloaders may dynamically add a few device nodes
to a system's DTB under a /firmware node. A typical DT looks something
like the following:

/ {
firmware {
ranges;

coreboot {
compatible = "coreboot";
reg = <...>;
...;
};
};
};

Notably, the /firmware node has an empty 'ranges', but does not have
address/size-cells.

Commit 6e5773d52f4a ("of/address: Fix WARN when attempting translating
non-translatable addresses") started requiring #address-cells for a
device's parent if we want to use the reg resource in a device node.
This leads to errors like the following:

[    7.763870] coreboot_table firmware:coreboot: probe with driver coreboot_table failed with error -22

Add appropriate #{address,size}-cells to work around the problem.

Note that Google has also patched the Depthcharge bootloader source to
add {address,size}-cells [1], but bootloader updates are typically
delivered only via Google OS updates. Not all users install Google
software updates, and even if they do, Google may not produce updated
binaries for all/older devices.

[1] https://lore.kernel.org/all/20241209092809.GA3246424@google.com/
    https://crrev.com/c/6051580 ("coreboot: Insert #address-cells and
    #size-cells for firmware node")

Closes: https://lore.kernel.org/all/aeKlYzTiL0OB1y3g@google.com/
Fixes: 6e5773d52f4a ("of/address: Fix WARN when attempting translating non-translatable addresses")
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
[On RK288-based Chromebooks there is no real other way than to load the
 DTB  together with its kernel when running a mainline kernel and as the
 whole line is EOL, there also won't be any updates to the bootloader that
 could fix that issue there.]
Link: https://patch.msgid.link/20260428200712.2660635-3-briannorris@chromium.org
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
arch/arm/boot/dts/rockchip/rk3288-veyron.dtsi

index 2d6cf08d00f906bc631ff087d6b1b37462a69584..ca8e8e73507819ce2d3e5f33b9b104c10667b135 100644 (file)
                stdout-path = "serial2:115200n8";
        };
 
+       firmware {
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+
        /*
         * The default coreboot on veyron devices ignores memory@0 nodes
         * and would instead create another memory node.