mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2026-03-19 03:59:28 -04:00
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:5e3a602def("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 commit68a466b698)