Newer
Older
AMI-Aptio-BIOS-Reversed / LastBootErrorLog / README.md
@Ajax Dong Ajax Dong 2 days ago 1 KB Init

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/