ath79: rework Netgear nand devices image recipe
authorShiji Yang <yangshiji66@qq.com>
Sun, 9 Jul 2023 14:10:53 +0000 (22:10 +0800)
committerDavid Bauer <mail@david-bauer.net>
Thu, 24 Aug 2023 18:45:01 +0000 (20:45 +0200)
commit7eda621404627ea244f770b36c20c71ff942e7cf
treeba886e705deb619de0c5067e564182fb7e286e73
parentf445c382637111c212131e3f14708d27f6bc60ca
ath79: rework Netgear nand devices image recipe

In Netgear u-boot GPL code, nand devices uses this formula to locate the
rootfs offset.

offset = (((128 + KERNEL_SIZE) / BLOCK_SIZE) + 1) * BLOCK_SIZE;

Howerver, WNDR4500 source code incorrectly define the nand block size to
64k. In some cases, it causes u-boot can't get the correct rootfs offset,
which result in boot failure. This patch workaround it by padding kernel
size to (128k * n - 128 - 1). The additional char '\0' is used to ensure
the (128 + KERNEL_SIZE) can't be divided by the BLOCK_SIZE.

Fixes: https://github.com/openwrt/openwrt/issues/13050
Fixes: 3c1512a25d92 ("ath79: optimize the firmware recipe for Netgear NAND devices")
Tested-by: Yousaf <yousaf465@gmail.com>
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
(cherry picked from commit 0f9b8aa3f592b22e3f1d5f7d049e92653ba0f884)
target/linux/ath79/image/nand.mk