Files
0xFFFF/doc/fiasco
T

101 lines
3.3 KiB
Plaintext
Raw Normal View History

Copyright (C) 2007-2011 pancake <pancake@youterm.com>
Copyright (C) 2011-2012 Pali Rohár <pali.rohar@gmail.com>
2012-08-11 22:25:25 +02:00
SPECS FOR THE FIASCO FIRMWARE FILE FORMAT ffff!
-----------------------------------------------
2012-08-11 22:25:25 +02:00
This is final working version of FIASCO format. FIASCO image which
is generated by this spec is acceptable by Nokia flasher-3.5 and
2013-09-23 11:33:03 +02:00
unpack data same as FIASCO image generated by Nokia fiasco-gen. This
2012-08-11 22:25:25 +02:00
format is implemented in 0xFFFF and every image which I tested
(generated by 0xFFFF and fiasco-gen) was properly unpacked under
0xFFFF and flasher-3.5 with same result. Small difference is that
fiasco-gen add some unknown subsection block to image header
(type '4' or '/') which contains some messy characters... But if
these sections missing, flasher-3.5 working fine too. And old FIASCO
2013-09-23 11:33:03 +02:00
images (for N8x0) does not have these subsection...
FILE HEADER
1 byte = 0xb4 -- signature
4 bytes -- FW header length (big endian)
FW HEADER
2012-07-14 09:22:47 +02:00
4 bytes -- number of FW header blocks (big endian)
block {
1 byte -- type of block
2012-07-14 09:22:47 +02:00
0xE8 - Fiasco name
0x31 - FW name
2012-07-14 09:22:47 +02:00
1 byte -- length of block data
N bytes -- block data
}
IMAGE
1 byte = 0x54 -- signature
2016-12-06 23:42:41 +01:00
1 byte -- number of subsection blocks
block {
2012-07-14 09:22:47 +02:00
1 byte -- type of subsection block
2021-05-02 14:09:53 +02:00
0x2E - file data
0x2F - partition info
0x31 - version
0x32 - device & hw revisions (size of device is 16, hw revision 8)
0x33 - layout
0x34 - image data part block (one block for one data part)
2012-07-14 09:22:47 +02:00
1 byte -- length of subsection block
N bytes -- subsection block data
}
2021-05-02 14:09:53 +02:00
1 byte -- checksum of subsection data without signature (0xFF - xorpair)
N bytes -- image data
2021-05-02 14:09:53 +02:00
FILE DATA BLOCK
1 byte -- asic index (always APE - 0x01)
1 byte -- device type (always NAND - 0x01)
1 byte -- device index (always 0x00)
2 bytes -- checksum for the image contents (xorpair) (big endian)
12 bytes -- image name type (first byte is FF if is the last image)
4 bytes -- length of image data (big endian)
4 bytes -- load address of image data (big endian, unused always zero)
PARTITION INFO BLOCK
N bytes -- unknown
IMAGE DATA PART BLOCK
4 bytes -- unknown (always 0x00 0x00 0x00 0x00)
4 bytes -- offset (big endian)
4 bytes -- unknown (always 0x00 0x00 0x00 0x00)
4 bytes -- size (big endian)
N bytes -- partition name (prefix) in layout (may be omitted)
LAYOUT DATA BLOCK
N bytes of text data, e.g.:
mmc {
name = "internal";
partition {
fs_type = "vfat";
prefix = "mydocs";
no_create = true;
}
partition {
size = 2048;
fs_type = "ext3";
prefix = "home";
}
partition {
size = 768;
fs_type = "swap";
}
}