On Mon, Apr 22, 2019 at 03:24:41PM +0100, Ralph Corderoy wrote:
Hi Jonathan,
So, the MTD partitions do not directly map to a kernel or a Linux filesystem. The "Q;Q;" blocks are an Amstrad specific way of putting data into those partitions, with a type + description associated with each one. For example the kernel lives in a Q;Q; block in mtd3 called "LINUX". mtd3 also has Q;Q; blocks for LDR (the second stage boot loader), and PARMS (the kernel boot parameters).
Agreed. I guessed a 32-byte struct based on various `Q;Q;'s seen.
It's a 124 byte struct from my notes;
0: 0x3B513B51 # Q;Q; 4: 6: 2 byte checksum 8: Length if uncompressed? C: 10: 14: # Block name, 16 chars 24: # Block description, 48 chars 64: Entry vector? 68: 0xB513B513 # Note, inverted Q;Q 6c: Load address? 70: Compression flag, 0 == plain, 2 == compressed 74: Compressed length 78: 7C: END
Compression is LZRW1 without the leading 4 flag bytes.
J.