From 7e53473ee87244ee9dd462fb82b24b1cf26e93a7 Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Fri, 9 Jun 2023 20:34:02 +0200 Subject: [PATCH] apm821xx: add u-boot,env compatible Note about the MyBook Live. The MyBook Live didn't have the encompassing fixed-partitions. This is needed for the u-boot,env compatible to be read as otherwise the kernel assumes this is a legacy NOR/NAND node and this binding is unsupported. Signed-off-by: Christian Lamparter --- target/linux/apm821xx/config-6.1 | 1 + target/linux/apm821xx/dts/meraki-mr24.dts | 9 +-- target/linux/apm821xx/dts/meraki-mx60.dts | 1 + .../linux/apm821xx/dts/netgear-wndap6x0.dtsi | 20 +++++- target/linux/apm821xx/dts/wd-mybooklive.dts | 67 +++++++++++++------ 5 files changed, 74 insertions(+), 24 deletions(-) diff --git a/target/linux/apm821xx/config-6.1 b/target/linux/apm821xx/config-6.1 index 2979312101..bde05e2f12 100644 --- a/target/linux/apm821xx/config-6.1 +++ b/target/linux/apm821xx/config-6.1 @@ -153,6 +153,7 @@ CONFIG_NR_CPUS=1 CONFIG_NR_IRQS=512 CONFIG_NVMEM=y CONFIG_NVMEM_SYSFS=y +CONFIG_NVMEM_U_BOOT_ENV=y CONFIG_OF=y CONFIG_OF_ADDRESS=y CONFIG_OF_EARLY_FLATTREE=y diff --git a/target/linux/apm821xx/dts/meraki-mr24.dts b/target/linux/apm821xx/dts/meraki-mr24.dts index 14bedc5984..a49a4de13f 100644 --- a/target/linux/apm821xx/dts/meraki-mr24.dts +++ b/target/linux/apm821xx/dts/meraki-mr24.dts @@ -63,10 +63,11 @@ * blocks (64KiB) in order to have spares * around for bad block management */ - label = "u-boot-env"; - reg = <0x00150000 0x00010000>; - read-only; - }; + label = "u-boot-env"; + compatible = "u-boot,env"; + reg = <0x00150000 0x00010000>; + read-only; + }; partition@160000 { /* diff --git a/target/linux/apm821xx/dts/meraki-mx60.dts b/target/linux/apm821xx/dts/meraki-mx60.dts index 0e343ed782..d9568d9263 100644 --- a/target/linux/apm821xx/dts/meraki-mx60.dts +++ b/target/linux/apm821xx/dts/meraki-mx60.dts @@ -61,6 +61,7 @@ partition@100000 { label = "u-boot-env"; reg = <0x00100000 0x00100000>; + compatible = "u-boot,env"; read-only; }; diff --git a/target/linux/apm821xx/dts/netgear-wndap6x0.dtsi b/target/linux/apm821xx/dts/netgear-wndap6x0.dtsi index 144b17950e..2921bfedb9 100644 --- a/target/linux/apm821xx/dts/netgear-wndap6x0.dtsi +++ b/target/linux/apm821xx/dts/netgear-wndap6x0.dtsi @@ -47,11 +47,29 @@ }; partition@100000 { + compatible = "u-boot,env"; label = "u-boot-env"; - reg = <0x00100000 0x00010000>; + reg = <0x00100000 0x0004000>; read-only; + + ethaddr { + }; + + bootcmd { + }; + + serno { + }; + + ProductID { + }; + + HardwareVer { + }; }; + /* 0x104000 - 0x10ffff free */ + partition@110000 { label = "firmware"; reg = <0x00110000 0x01ac0000>; diff --git a/target/linux/apm821xx/dts/wd-mybooklive.dts b/target/linux/apm821xx/dts/wd-mybooklive.dts index 588f45078c..5ed865e286 100644 --- a/target/linux/apm821xx/dts/wd-mybooklive.dts +++ b/target/linux/apm821xx/dts/wd-mybooklive.dts @@ -21,30 +21,59 @@ &POB0 { ebc { nor_flash@0,0 { - status = "okay"; - compatible = "microchip,sst39vf040", "jedec-flash"; - bank-width = <1>; - reg = <0x00000000 0x00000000 0x00080000>; + status = "okay"; + compatible = "jedec-flash"; /* "microchip,sst39vf040 */ + bank-width = <1>; + reg = <0x00000000 0x00000000 0x00080000>; #address-cells = <1>; #size-cells = <1>; - partition@0 { - /* Part of bootrom - Don't use it without a jump */ - label = "free"; - reg = <0x00000000 0x0001e000>; - read-only; - }; + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + /* Part of bootrom - Don't use it without a jump */ + label = "free"; + reg = <0x00000000 0x0001e000>; + read-only; + }; + + partition@1e000 { + compatible = "fixed-partitions"; + reg = <0x0001e000 0x00002000>; + label = "u-boot-env"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + compatible = "u-boot,env-redundant-bool"; + reg = <0x00000000 0x00001000>; + label = "u-boot-env-1"; + + ethaddr { + }; + }; + +/* + * Causes the following warning: * sysfs: cannot create duplicate filename '/bus/nvmem/devices/u-boot-env0' + * + * partition@1000 { + * compatible = "u-boot,env-redundant-bool"; + * reg = <0x00001000 0x00001000>; + * label = "u-boot-env-2"; + * + * }; + */ + }; - partition@1e000 { - label = "env"; - reg = <0x0001e000 0x00002000>; - read-only; - }; - partition@20000 { - label = "uboot"; - reg = <0x00020000 0x00050000>; - read-only; + partition@20000 { + label = "uboot"; + reg = <0x00020000 0x00050000>; + read-only; + }; }; }; }; -- 2.30.2