@@ -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