From a94c020f385afc8158a10b1fe7451621da72e497 Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Wed, 15 Apr 2026 18:58:59 -0700 Subject: [PATCH] chromium: Add #{address,size}-cells to /firmware Commit b4d7263bc3b6 ("kernel: of: avoid some unnecessary bad cell count warnings") backported Linux commit 6e5773d52f4a ("of/address: Fix WARN when attempting translating non-translatable addresses"), which started requiring #address-cells for a device's parent if we want to use the reg resource in a device node. Many Chromium devices use a /firmware/coreboot device node that is patched in by the boot firmware. These structures look something like: # find /sys/firmware/devicetree/base/firmware/ /sys/firmware/devicetree/base/firmware/ /sys/firmware/devicetree/base/firmware/scm /sys/firmware/devicetree/base/firmware/scm/compatible /sys/firmware/devicetree/base/firmware/scm/name /sys/firmware/devicetree/base/firmware/ranges /sys/firmware/devicetree/base/firmware/chromeos /sys/firmware/devicetree/base/firmware/chromeos/fmap-offset /sys/firmware/devicetree/base/firmware/chromeos/compatible /sys/firmware/devicetree/base/firmware/chromeos/readonly-firmware-version /sys/firmware/devicetree/base/firmware/chromeos/nonvolatile-context-storage /sys/firmware/devicetree/base/firmware/chromeos/hardware-id /sys/firmware/devicetree/base/firmware/chromeos/firmware-type /sys/firmware/devicetree/base/firmware/chromeos/vboot-shared-data /sys/firmware/devicetree/base/firmware/chromeos/nonvolatile-context-offset /sys/firmware/devicetree/base/firmware/chromeos/firmware-version /sys/firmware/devicetree/base/firmware/chromeos/nonvolatile-context-size /sys/firmware/devicetree/base/firmware/chromeos/name /sys/firmware/devicetree/base/firmware/coreboot /sys/firmware/devicetree/base/firmware/coreboot/compatible /sys/firmware/devicetree/base/firmware/coreboot/board-id /sys/firmware/devicetree/base/firmware/coreboot/reg /sys/firmware/devicetree/base/firmware/coreboot/name /sys/firmware/devicetree/base/firmware/name Notably, there is no #{address,size}-cells in /firmware. This breaks any driver relying on a device under /firmware, such as the coreboot_table driver. This is technically an ill-formatted FDT, and so we might as well just add the properties ourselves. Signed-off-by: Brian Norris Link: https://github.com/openwrt/openwrt/pull/22951 Signed-off-by: Robert Marko --- target/linux/ipq40xx/dts/qcom-ipq4019-wifi.dts | 5 +++++ target/linux/ipq806x/dts/qcom-ipq8064-onhub.dtsi | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/target/linux/ipq40xx/dts/qcom-ipq4019-wifi.dts b/target/linux/ipq40xx/dts/qcom-ipq4019-wifi.dts index a93424acb00..51dc07777d3 100644 --- a/target/linux/ipq40xx/dts/qcom-ipq4019-wifi.dts +++ b/target/linux/ipq40xx/dts/qcom-ipq4019-wifi.dts @@ -31,6 +31,11 @@ stdout-path = &blsp1_uart1; }; + firmware { + #address-cells = <1>; + #size-cells = <1>; + }; + memory { device_type = "memory"; reg = <0x80000000 0x20000000>; /* 512MB */ diff --git a/target/linux/ipq806x/dts/qcom-ipq8064-onhub.dtsi b/target/linux/ipq806x/dts/qcom-ipq8064-onhub.dtsi index af8d410fdb5..b8026ee9405 100644 --- a/target/linux/ipq806x/dts/qcom-ipq8064-onhub.dtsi +++ b/target/linux/ipq806x/dts/qcom-ipq8064-onhub.dtsi @@ -20,6 +20,11 @@ stdout-path = "serial0:115200n8"; }; + firmware { + #address-cells = <1>; + #size-cells = <1>; + }; + reserved-memory { #address-cells = <1>; #size-cells = <1>; -- 2.47.3