mirror of
https://github.com/LiBwrt-op/ipq50xx.git
synced 2025-12-16 15:01:44 +00:00
Current factory image sizes for Linksys devices are 256-byte aligned. This
is not an issue writing factory images from the OpenWrt or Linksys GUIs,
but can lead to failures using a TFTP client from the Linksys bootloader:
NAND write: device 1 offset 0x2800000, size 0xc00100
Attempt to write to non page aligned data
NAND write to offset 2800000 failed -22
0 bytes written: ERROR
Simplify Linksys footer creation by migrating to a makefile build recipe,
and pre-pad the footer (with 0xFF) to ensure the final image is $(PAGESIZE)
aligned. Finally, remove the old linksys-image.sh script no longer needed.
Linksys footer details are given below for future reference. The 256-byte
footer is appended to factory images and tested by both the Linksys
Upgrader (observed in EA6350v3) and OpenWrt sysupgrade.
Footer format:
.LINKSYS. Checked by Linksys upgrader before continuing. (9 bytes)
<VERSION> Upgrade version number, unchecked so arbitrary. (8 bytes)
<TYPE> Model of device, space padded (0x20). (15 bytes)
<CRC> CRC checksum of factory image to flash. (8 bytes)
<padding> Padding ('0' + 0x20 * 7) (8 bytes)
<signature> Signature of signer, unchecked so arbitrary. (16 bytes)
<padding> Padding with nulls (0x00) (192 bytes)
Link: https://github.com/openwrt/openwrt/pull/11405#issuecomment-1358510123
Link: https://github.com/openwrt/openwrt/pull/11405#issuecomment-1587517739
Reported-by: Stijn Segers <foss@volatilesystems.org>
Reported-by: Wyatt Martin <wawowl@gmail.com>
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
|
||
|---|---|---|
| .. | ||
| config | ||
| flashing | ||
| brcmImage.pl | ||
| bundle-libraries.sh | ||
| cameo-imghdr.py | ||
| cameo-tag.py | ||
| cfe-bin-header.py | ||
| cfe-partition-tag.py | ||
| cfe-wfi-tag.py | ||
| check-toolchain-clean.sh | ||
| checkpatch.pl | ||
| clean-package.sh | ||
| cleanfile | ||
| cleanpatch | ||
| combined-ext-image.sh | ||
| combined-image.sh | ||
| command_all.sh | ||
| config.guess | ||
| config.rpath | ||
| config.sub | ||
| const_structs.checkpatch | ||
| deptest.sh | ||
| diffconfig.sh | ||
| dl_cleanup.py | ||
| dl_github_archive.py | ||
| download.pl | ||
| dump-target-info.pl | ||
| env | ||
| ext-toolchain.sh | ||
| ext-tools.sh | ||
| feeds | ||
| fixup-makefile.pl | ||
| functions.sh | ||
| gen_image_generic.sh | ||
| gen-dependencies.sh | ||
| get_source_date_epoch.sh | ||
| getver.sh | ||
| ipkg-build | ||
| ipkg-make-index.sh | ||
| ipkg-remove | ||
| json_add_image_info.py | ||
| json_overview_image_info.py | ||
| kconfig.pl | ||
| make-ipkg-dir.sh | ||
| md5sum | ||
| metadata.pm | ||
| mkhash.c | ||
| mkits-qsdk-ipq-image.sh | ||
| mkits-zyxel-fit-filogic.sh | ||
| mkits-zyxel-fit.sh | ||
| mkits.sh | ||
| moxa-encode-fw.py | ||
| netgear-encrypted-factory.py | ||
| noop.sh | ||
| om-fwupgradecfg-gen.sh | ||
| package-metadata.pl | ||
| pad_image | ||
| patch-kernel.sh | ||
| patch-specs.sh | ||
| portable_date.sh | ||
| qemustart | ||
| redboot-script.pl | ||
| relink-lib.sh | ||
| remote-gdb | ||
| rstrip.sh | ||
| sercomm-crypto.py | ||
| sercomm-kernel-header.py | ||
| sercomm-partition-tag.py | ||
| sercomm-payload.py | ||
| sercomm-pid.py | ||
| sign_images.sh | ||
| size_compare.sh | ||
| slugimage.pl | ||
| spelling.txt | ||
| srecimage.pl | ||
| strip-kmod.sh | ||
| symlink-tree.sh | ||
| sysupgrade-tar.sh | ||
| target-metadata.pl | ||
| time.pl | ||
| timestamp.pl | ||
| ubinize-image.sh | ||
| xxdi.pl | ||