LastBootErrorLog
Index: 0227 | Size: 39,760 bytes (159,040 body) | Phase: DXE
Overview
DXE driver that processes the last boot error log for RAS purposes on Intel Purley (Xeon Scalable) platforms. Reads error records from HOB (Hand-Off Block), translates them through WHEA protocol, and dispatches error information to crash handler, error log, and platform-specific storage. Supports 5 error group types with a processor error decode pipeline that reads MSRs (MCG_CAP, MCi_STATUS), determines correction modes (0-6), and routes to handler callbacks (cmc_handler, smi_handler, ue_handler). Uses a 20-entry round-robin error cache table and SetJump/LongJump for error recovery.
Key Functions
- _ModuleEntryPoint -- DXE entry: AutoGen init (11 library constructors), main processing
- sub_192C -- WHEA Silicon Hooks init: resolves protocols, reads HOB for last boot error
- sub_23FC -- Process last boot error: parses HOB, dispatches based on error type (1=error, 2=clear)
- sub_34BC -- Main processor error decode: reads MCG_CAP MSR, determines correction mode, routes to callbacks
- sub_2EC4 -- Search/find error in WHEA bank, dispatch to handler callback
- sub_208C -- Platform-specific error processing: 4 sockets x 21 threads via PCIe config space
- sub_27D4 -- Build error notification structure for crash handler / WHEA event
Protocols/Dependencies
- WHEA Boot Protocol, MP Sync Protocol, MM PCI Base Protocol
- SMM CPU Protocol, CPU Data Protocol, SMI Handler Protocol
- HOB list (gEfiHobListGuid, gEfiLastBootErrorHobGuid)
Intel Purley (Skylake-SP Xeon), HR650X
Source: PurleyPlatPkg/Ras/Whea/LastBootErrorLog/