ipq40xx: fix broken image generation for EX6150v2
authorDavid Bauer <mail@david-bauer.net>
Fri, 7 Jun 2024 17:23:56 +0000 (19:23 +0200)
committerDavid Bauer <mail@david-bauer.net>
Sat, 8 Jun 2024 15:30:58 +0000 (17:30 +0200)
commitd0620706f05bf8d4e4eabeb3063d61dcc579b643
tree297915593f42b49c011a42ff1748beb362a9cff4
parent3287d82fcfc89ded0d00013e4905136b587585d0
ipq40xx: fix broken image generation for EX6150v2

All NETGEAR EX6150v2 validate the rootfs for which OpenWrt places a
fakeheader at the position, where the bootloader expects it.

Some EX6150v2 bootloaders do however make a broken assumption about
where the rootfs starts. This is due to them calculating the rootfs
start not based upon the kernel-length but the string-offset of the
FIT-image.

We have to be compatible with both this broken as well as the valid
calculation. So we do relocate the FDT string section to a
block-boundary and enlarge the FIT image to end at this boundary +
BLOCKSIZE / 2. This way, both the broken as well as correct calculations
do expect the rootfs-header at the same position.

It is worth noting, that this is a rare edge-case in which only happens
if the image-length as well as the start of the string-section are not
placed in the same erase-block. This is an edge-case which happens very
rarely (thus it was not spotted prior).

Affected:
 - U-Boot 2012.07 (Jun 16 2016 - 11:59:37)

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit de59fc45402ff03e320264c8204f6928090534ad)
target/linux/ipq40xx/image/generic.mk
target/linux/ipq40xx/image/netgear-fit-padding.py [new file with mode: 0755]