Add CSME 18-21 support (MTL/ARL/LNL/PTL) - #70
Open
Nabing954 wants to merge 2 commits into
Open
Conversation
Extend ME Analyzer to detect and parse CSME 17+/18+/21+ firmware, reverse engineered from Meteor Lake and newer images plus Intel MFIT: - CSE Layout Table v2 (CSME 18+): pUTOK/pFLOG region pointers, second Fault Log (FLOG2, CSME 21+), variable-size Pointers Table, internal CRC-32 validation and descriptor-less image detection - $MN2 manifests: new RSA-4096 R2 variant (SHA-384, 128 DWord modulus) - Key Manifest extension 22 R2 entries with embedded SHA-384 public key hash - Reverse engineered extensions: Ext 27 Target Platform List (Hardware ID entries), Ext 28 Sub-Binary Info, Ext 23 Signed Package Info v2 (replaces Ext 0F at CSME 18+) - Post-Quantum Cryptography manifest detection (CSME 18+/MTL+) - New partition types: ESEPKG, SSPH (CSME 21+), CNViP (CSME 21+), OSSE SROM/KM/RT (CSME 20+) incl. optional OSSE Region Layout Table - RBEP/NFTP engine manifest markers replacing FTPR at CSME 18+ - Engine/Independent firmware variant mapping for MTL/ARL/LNL/PTL (PCHC, PMC and new-gen IUP with x100 versioning scheme) - Updated SKU/platform unsupported checks for new platforms Based on ME Analyzer v1.311.0 r377.
Adds FTBL dictionaries 0A/0B/0C/0F/1E (~9.9k entries) required by the CSME 18-21 MEA.py changes; without them MTL+ images fail with 'Could not find File System Platform 0x12'. Purely additive, no existing platforms modified.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hello,
I extended ME Analyzer to detect and parse CSME 17+/18+/21+ firmware (Meteor Lake, Arrow Lake, Lunar Lake, Panther Lake era) and would like to contribute the work upstream. The change is based on v1.311.0 r377 and touches MEA.py only (+597/-39 lines).
What was reverse engineered
Size= 0x58 MTL/LNL vs 0x60 PTL), internal CRC-32 validation, and detection in descriptor-less images / new flash descriptor format.manpatterns replacing FTPR at CSME 18+ (no morefwupdatemodule; NFTP/RBEP carry the engine version)Testing
Verified against real CSME 18.x-21.x firmware images from MTL/ARL/LNL/PTL systems (layout parsing, partition enumeration, manifest extraction and version reporting).
Notes
Thanks for the great tool and years of documentation that made this possible.