# 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)

## Platform
Intel Purley (Skylake-SP Xeon), HR650X
Source: PurleyPlatPkg/Ras/Whea/LastBootErrorLog/