Skip to content

Commit 43f179e

Browse files
committed
docs/unpacking: document ME gen 2 and partitioning
Signed-off-by: Daniel Maslowski <[email protected]>
1 parent b667413 commit 43f179e

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

docs/unpacking.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,31 @@ enum Container {
2929
}
3030
```
3131

32+
## Intel ME Generation 2
33+
34+
With the second hardware generation, Intel ME based platforms have introduced
35+
a partitioning scheme called Flash Partition Table (FPT), starting with a `$FPT`
36+
magic. There are code and data partitions, and the main code partition is called
37+
FTPR.
38+
39+
Code partitions start with a manifest that holds metadata over the modules
40+
contained in the partition, as a flat directory. Those modules are in part
41+
Huffman-encoded and chunked, and the Huffman tables are part of the mask ROM.
42+
43+
The overall manifest format is header + signature + data. The data part lists
44+
the modules with their offsets, sizes and hashes, so that the manifest covers
45+
the whole partition's integrity.
46+
3247
## Intel ME Generation 3
3348

3449
With the third hardware generation of Intel ME based platforms, a new operating
35-
system was introduced, based on MINIX 3. It needs bootstrapping first.
50+
system was introduced, based on MINIX 3. It needs bootstrapping first, starting
51+
with phases called RBE (ROM Boot Extensions) and bup (bringup).
3652

3753
There are multiple kinds of partitions, including Code Partition Directory (CPD)
3854
partitions. Those contain executables, their corresponding metadata files, and a
39-
manifest that holds a signature over the manifest.
55+
manifest that holds a signature over the header before it and its other data.
56+
The manifest format with the header and signature is the same as for Gen 2.
4057

4158
The signed data in the manifest includes hashes of the metadata files and other
4259
things, so that the manifest suffices to verify the entire CPD's integrity.

0 commit comments

Comments
 (0)