Allow compressed flash updates by earlephilhower · Pull Request #6820 · esp8266/Arduino

@earlephilhower earlephilhower changed the title WIP - Allow eboot to be built with -O2, clean up warnings WIP - Allow compressed flash updates

Nov 26, 2019

@earlephilhower earlephilhower changed the title WIP - Allow compressed flash updates Allow compressed flash updates

Nov 27, 2019

@earlephilhower

Modified the bootloader to be able to take stored updates in compressed
GZIP format (i.e. the output of "gzip -9 xxx.bin") and decompress them
on-the-fly to their final destination.  This can work for apps and for
filesystems (when used with the 2-step update option).

Allow eboot to be built using -Os/2 optimizations by fixing some portions
which failed when any optimizations were used.  Add -Wall and use data
and function sections to reduce size.  Use -Os to minimize size.

Remove obsolete esptool-ck calls to build a .ROM image, we don't use it.

Move all uninitted variables to RAM from IRAM, allowing 8-bit access.

Hook in @d-a-v and @pfalcon's uzlib port to actually do the
decompression.  Do not use any CRC checking which saves space.  Since we
have overwritten all of flash by the time we know id the CRC matches,
there's nothing we could have done anyway.

Adjust the Updater class to support GZIP files and not attempt to patch
them.

Bootloader builds to 0xd90 out of 0xfff bytes.

@earlephilhower

@earlephilhower

For now, because there are some self-test failures with @d-a-v's esp8266
branch (whose cool new features we don't actually use in eboot now)
start with pfalcon's 2.9 release and add the 2 patches (clcidx to code
from IRAM/RODATA, and the Windows test file renaming) needed to build
and run successfully.

@earlephilhower

@earlephilhower

This was referenced

Dec 18, 2019