# Autogen'ed file, don't edit. See stm32/sigheader.h for original # (c) Copyright 2018 by Coinkite Inc. This file is covered by license found in COPYING-CC. # Our simple firmware header. # Although called a header, this data is placed into the middle of the binary. # It is located at start of firmware + 16k - sizeof(heaer). This is a gap unused in normal # micropython layout. Exactly the last 64 bytes (signature) should be left out of # the checksum. We do checksum areas beyond the end of the last byte of firmware (up to length) # and expect those regions to be unprogrammed flash (ones). # - timestamp must increase with each upgrade (downgrade protection) # - version_string is for humans only # - pubkey_num indicates which pubkey was used for signature # - firmware_length, must be: # - bigger than minimum length, less than max # - 512-byte aligned # - bootloader assumes the flash filesystem (FAT FS) follows the firmware. # - this C header file is somewhat parsed and used by python signature-adding code # - timestamp is YYMMDDHHMMSS0000 in BCD FW_HEADER_SIZE = 128 FW_HEADER_OFFSET = (0x4000-FW_HEADER_SIZE) FW_HEADER_MAGIC = 0xCC001234 # Firmware Image Size # arbitrary min size FW_MIN_LENGTH = (256*1024) # (mk1-3) absolute max size: 1MB flash - 32k for bootloader = 1,015,808 # - but practical limit for our-protocol USB upgrades: 786432 (or else settings damaged) FW_MAX_LENGTH = (0x100000 - 0x8000) # .. for Mk4: 2Mbytes, less bootrom of 128k. FW_MAX_LENGTH_MK4 = (0x200000 - 0x20000) # Arguments to be used w/ python's struct module. FWH_PY_FORMAT = "