]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ARM: tegra: Add #{address,size}-cells to Chromium-based /firmware
authorBrian Norris <briannorris@chromium.org>
Tue, 28 Apr 2026 20:06:55 +0000 (13:06 -0700)
committerThierry Reding <treding@nvidia.com>
Thu, 28 May 2026 22:08:16 +0000 (00:08 +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>
Signed-off-by: Thierry Reding <treding@nvidia.com>
arch/arm/boot/dts/nvidia/tegra124-nyan.dtsi
arch/arm/boot/dts/nvidia/tegra124-venice2.dts

index 974c76f007db4d473d1fa3f8babf20b77d85b3db..89a749cb893388c8057488cdbbd4395ace5a0e19 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
+       firmware {
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+
        /*
         * Note that recent version of the device tree compiler (starting with
         * version 1.4.2) warn about this node containing a reg property, but
index df98dc2a67b8587b1e6c6f8348748f781e6c5f79..059ee6c5b13cdbf2f5ad1cb0991176ab5d2cf24a 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
+       firmware {
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+
        memory@80000000 {
                reg = <0x0 0x80000000 0x0 0x80000000>;
        };