Skip to content

Commit 06eba2e

Browse files
committed
docs/unpacking: document IFWI for Gen 3
Signed-off-by: Daniel Maslowski <[email protected]>
1 parent e9ebff8 commit 06eba2e

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

docs/unpacking.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,31 @@ utilities for unpacking:
6666

6767
- <https://github.com/ptresearch/unME11>
6868
- <https://github.com/ptresearch/unME12>
69+
70+
### Integrated Firmware Image
71+
72+
A variant of ME gen 3 firmware exists based on a different layout, as described
73+
in the Atom E3900 series platform enabling guide[^1]:
74+
75+
> The IFWI region in SPI flash physically follows the SPI Flash Descriptor
76+
> Region. It contains all platform firmware components and device firmware
77+
> components.
78+
79+
> The IFWI region is divided into two Logical Boot Partitions, which are
80+
> identical in size. The Logical Boot Partition layout is defined by the Boot
81+
> Partition Descriptor Table (BPDT) at the head of the Logical Boot Partition.
82+
83+
There are multiple IFWI data structures, and some do not have a magic to detect,
84+
so parsing them is not trivial. ME Analyzer has a lot of logic[^3] for them.
85+
In some cases, the FPT is located right after the IFWI.
86+
87+
The BPDT entries mostly point to CPDs, including the FTPR.
88+
Some BPDT entries may point to the FPT.
89+
90+
Samples:
91+
- BPDT v1: Google "Coral" Chromebook
92+
- BPDT v2: System76 Lemur Pro 10 (Tigerlake), Gigabyte Z590[^2]
93+
94+
[^1]: <https://cdrdv2-public.intel.com/671281/uefi-firmware-enabling-guide-for-the-intel-atom-processor-e3900-series.pdf>
95+
[^2]: <https://www.gigabyte.com/us/Motherboard/Z590M-rev-10/support#support-dl>
96+
[^3]: <https://github.com/platomav/MEAnalyzer/blob/aa148556bbf09e418074c3cea18255a25432fb7c/MEA.py#L11490>

0 commit comments

Comments
 (0)