I've been studying the Ruby.ldf firmware payload file.
There are several DATA BLOCKs which are written to the address space at base offset 0x40000000. I believe this address corresponds to the flash ROMs.
For example, the following data block is written to 0x40000080 and has a size of 0x1000 bytes. "4097" is the equivalent decimal count in bytes plus 1 checksum byte at the end.
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00008400 44 41 54 41 20 42 4C 4F 43 4B 0D 0A DATA BLOCK..
00008410 2C 23 48 34 30 30 30 30 30 38 30 2C 23 48 31 30 ,#H40000080,#H10
00008420 30 30 0D 0A 34 30 39 37 0D 0A 00..4097..
In addition to these data blocks there are also several EXTENSION DATA blocks.
The following example writes 0x200 bytes to address 0x44003c00. "1024" is the number of bytes that follow. There is no checksum. These bytes are not in binary format, but are the ASCII coded hex values.
EXTENSION DATA
44003c00,200,
1024
The bulk of the EXTENSION DATA is written to 0x44000000 - 0x44003E6B.
The final segment is written to 0xffff0400:
EXTENSION DATA
ffff0400,7,
14
4C4954544C4500 <-- this is the data = "LITTLE<00>"
If 0x44000000 is in RAM, then I guess that the EXTENSION DATA don't matter. It may be just auxiliary code that runs during the update.
That would also explain the EXTENSION COMMAND TABLE:
EXTENSION COMMAND TABLE
CF:GO44001610
EO:GO44001874
FC:GO44001914
PF:GO440019D4
QF:GO44002900
TI:GO44002A68
FP:GO44002A9C