diff options
| author | Christian Lamparter <chunkeey@gmail.com> | 2023-10-20 16:20:27 +0200 |
|---|---|---|
| committer | Christian Lamparter <chunkeey@gmail.com> | 2023-10-20 18:13:57 +0200 |
| commit | d6a11833ad67c33ad10dadf396f6c30bb44ef30f (patch) | |
| tree | 8d2c9fd37cd2bdda6cacb995f05dc19af063251d /target/linux | |
| parent | 0ba5c0bdc1ebddb50ab34806343d77baf54044be (diff) | |
| download | upstream-d6a11833ad67c33ad10dadf396f6c30bb44ef30f.tar.gz upstream-d6a11833ad67c33ad10dadf396f6c30bb44ef30f.tar.bz2 upstream-d6a11833ad67c33ad10dadf396f6c30bb44ef30f.zip | |
apm821xx: WNDR4700: fix broken sysupgrade, factory images
prepend-dtb got extended to handle the Meraki devices too,
the problem here was that the Netgear WNDR4700 expects an
u-boot header in front of the DTB, whereas Meraki devices
don't.
Since the header was dropped, the WNDR4700's uboot started
to complain:
Bad Magic Number,it is forbidden to be written to flash!!
when flashing the factory.img since it expects an u-boot
header there.
Fixes: 5dece2d9355a ("apm821xx: switch over from DTB_SIZE to DEVICE_DTC_FLAGS")
Reported-by: @kisgezenguz
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Diffstat (limited to 'target/linux')
| -rw-r--r-- | target/linux/apm821xx/image/nand.mk | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/target/linux/apm821xx/image/nand.mk b/target/linux/apm821xx/image/nand.mk index 9ecc2320fd8..469bf58c1d1 100644 --- a/target/linux/apm821xx/image/nand.mk +++ b/target/linux/apm821xx/image/nand.mk @@ -3,7 +3,12 @@ define Build/create-uImage-dtb -$(STAGING_DIR_HOST)/bin/mkimage -A $(LINUX_KARCH) \ -O linux -T kernel -C none \ -n '$(call toupper,$(LINUX_KARCH)) $(VERSION_DIST) Linux-$(LINUX_VERSION)' \ - -d "$@.dtb" "$@.dtb.uimage" + -d "$(KDIR)/image-$(firstword $(DEVICE_DTS)).dtb" "$@.dtb.uimage" +endef + +define Build/prepend-dtb-uImage + cat "$@.dtb.uimage" "$@" > "$@.new" + mv "$@.new" "$@" endef define Build/meraki-header @@ -104,7 +109,7 @@ define Device/netgear_wndr4700 # append a fake/empty rootfs to fool netgear's uboot # CHECK_DNI_FIRMWARE_ROOTFS_INTEGRITY in do_chk_dniimg() KERNEL := kernel-bin | lzma -d16 | uImage lzma | pad-offset $$(BLOCKSIZE) 64 | \ - append-uImage-fakehdr filesystem | create-uImage-dtb | prepend-dtb + append-uImage-fakehdr filesystem | create-uImage-dtb | prepend-dtb-uImage KERNEL_INITRAMFS := kernel-bin | libdeflate-gzip | MuImage-initramfs gzip IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \ netgear-dni | check-size |
