The info in the table below is based on official firmware “KW-1004-1.0.3.62.upg” This was the most recent firmware for my Neon at the time I checked the structure.
Internally, Firmware files are starting with a header followed by a binary and a ROMFS block. ROMFS is one of the unix file systems and common for uCLinux.
Firmware header information:
The Header is located at the beginning of the upgrade file (0×000000) and goes till 0×0003FF
The header reports a FileSize of 3698060 bytes. This is the block starting at 0×000400 and goes all the way till the end of the file. Calculating a Checksum-16 on this data block gives the word value stored at 0×000122.0×000400 Begin of code0×187988 Begin of RomFS (starts with “-rom1fs-”)
Offset | Info | Type | Data |
0x0000 | Company name | STRING | "PenBex Data System Inc" |
0x0020 | Device model | STRING | "KW-1004" |
0x0040 | Filename | STRING | "image.upg" |
0x00B0 | *unknown* | STRING | "00010000" |
0x00C0 | Filesize | STRING | "386d8c" (decimal: 3698060) |
0x00D0 | ID | STRING | "OFW" |
0x00E0 | Description | STRING | "CREATE BY REN-DE WANG" |
0x0120 | *unknown* | WORD | 0002 |
0x0122 | Checksum | WORD | BEA7 |
0x0126 | *unknown* | STRING | "0000000...." |
(Last Edited:August 7, 2009, 11:12 pm)