diff options
| author | Hauke Mehrtens | 2026-02-15 02:06:53 +0000 |
|---|---|---|
| committer | Hauke Mehrtens | 2026-02-17 00:47:48 +0000 |
| commit | 576aa041511f8dd157720ed1ccaa9764bdb11997 (patch) | |
| tree | d803c650d3cef05b25b6d4bf05e978cbb9e396a8 | |
| parent | ff3fad172d285b1504d54739f9ab7dfb23cf66cb (diff) | |
| download | openwrt-576aa041511f8dd157720ed1ccaa9764bdb11997.tar.gz | |
ath79: add env-size for Sitecom WLR-7100 / WLR-8100 u-boot-env
The Linux kernel assumes that the u-boot environment covers the full
partition, but it only covers 0x1000 bytes. Linux checks the CRC and
does this over the full partition. This fails like this:
```
u-boot-env-layout 1f000000.spi:flash@0:partitions:partition@30000:nvmem-layout: Invalid calculated CRC32: 0xfcac8c41 (expected: 0x14e6335a)
u-boot-env-layout 1f000000.spi:flash@0:partitions:partition@30000:nvmem-layout: probe with driver u-boot-env-layout failed with error -22
```
Define the u-boot environment with a length of 0x1000 bytes to calculate
the CRC only over this area.
When replicating the u-boot environment with these parameters it
generates the same CRC:
```
mkenvimage -p 0 -b -s 0x1000 -o output.bin input.txt
```
Fixes: https://github.com/openwrt/openwrt/issues/21696
Fixes: 5e3a602def72 ("ath79: sitecom,wlrx100: use nvmem")
Link: https://github.com/openwrt/openwrt/pull/22030
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 68a466b698420b32ee45c322141b1f156b635640)
| -rw-r--r-- | target/linux/ath79/dts/ar1022_sitecom_wlr-7100.dts | 1 | ||||
| -rw-r--r-- | target/linux/ath79/dts/qca9558_sitecom_wlr-8100.dts | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/target/linux/ath79/dts/ar1022_sitecom_wlr-7100.dts b/target/linux/ath79/dts/ar1022_sitecom_wlr-7100.dts index 7903f3d73f..da5eba26de 100644 --- a/target/linux/ath79/dts/ar1022_sitecom_wlr-7100.dts +++ b/target/linux/ath79/dts/ar1022_sitecom_wlr-7100.dts @@ -128,6 +128,7 @@ nvmem-layout { compatible = "u-boot,env"; + env-size = <0x1000>; macaddr_uboot_ethaddr: ethaddr { #nvmem-cell-cells = <1>; diff --git a/target/linux/ath79/dts/qca9558_sitecom_wlr-8100.dts b/target/linux/ath79/dts/qca9558_sitecom_wlr-8100.dts index 9978a3d7d1..e29076d696 100644 --- a/target/linux/ath79/dts/qca9558_sitecom_wlr-8100.dts +++ b/target/linux/ath79/dts/qca9558_sitecom_wlr-8100.dts @@ -83,6 +83,7 @@ nvmem-layout { compatible = "u-boot,env"; + env-size = <0x1000>; macaddr_uboot_ethaddr: ethaddr { #nvmem-cell-cells = <1>; |