From b36e1168b0bb65f49de5c424e4a125bed1feb52f 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 (cherry picked from commit a94c020f385afc8158a10b1fe7451621da72e497) Link: https://github.com/openwrt/openwrt/pull/22957 Signed-off-by: Robert Marko --- .../files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-wifi.dts | 5 +++++ .../arch/arm/boot/dts/qcom/qcom-ipq8064-onhub.dtsi | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-wifi.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-wifi.dts index a93424acb0..51dc07777d 100644 --- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-wifi.dts +++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/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/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq8064-onhub.dtsi b/target/linux/ipq806x/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq8064-onhub.dtsi index af8d410fdb..b8026ee940 100644 --- a/target/linux/ipq806x/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq8064-onhub.dtsi +++ b/target/linux/ipq806x/files-6.12/arch/arm/boot/dts/qcom/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>;