The soft-version partition actually contains a header and trailing data:
* header: {data length, [zero]}
* data: {version, bcd encoded date, revision}
The data length is currently treated as a magic number, but should
contain the length of the partition data.
This header is also present the following partitions (non-exhaustive):
* string-based soft-version
* support-list
Signed-off-by: Sander Vanheule <sander@svanheule.net>
/** The content of the soft-version structure */
struct __attribute__((__packed__)) soft_version {
- uint32_t magic;
+ uint32_t data_len;
uint32_t zero;
uint8_t pad1;
uint8_t version_major;
struct tm *tm = gmtime(&t);
- s->magic = htonl(0x0000000c);
+ /* Partition contents size, minus 8 byte header and trailing byte */
+ s->data_len = htonl(entry.size-9);
s->zero = 0;
s->pad1 = 0xff;