This is what I know about the empeg upgrade file format:
unsigned long | length | length of the next block |
-none- | content | Any number of content blocks, see table below for more info. |
unsigned long | CRC32 | CRC32 of the previous block, CRC32 initialized with 0, not with -1 (0xFFFFFFFF) as some might do it. |
The content field contains blocks of the following format:
unsigned long | blocktype | Typ des Datenblocks |
unsigned long | blocklength | Länge des Datenblocks (without the type and length fields) |
-none- | data | the Data part (see table below for some notes) |
Depending on the blocktype, the data field contains the following data:
CHUNK_UPGRADERVERSION | an unsigned long (current value: 2) |
CHUNK_INFO CHUNK_WHAT CHUNK_RELEASE CHUNK_VERSION |
text containing the named info which is displayed to the user just before the upgrade is applied. Look in readme.txt for an example. |
CHUNK_FLASHLOADER CHUNK_KERNEL CHUNK_RAMDISK CHUNK_RANDOM |
an unsigned long containing the target address in the players flash memory followed by the content to be flashed |
CHUNK_HWREV | a text file, containing one number on each line. This upgrade can only be applied to the referenced hardware revisions. |
CHUNK_PUMPHD[ABC] | no data at all. (blocklength is 0) |
CHUNK_PUMPHD[ABC][1..8] | gzip'ed image of the named partition. |