# ProcessorErrorHandler
**Index:** 0218 | **Size:** 57,988 bytes (228,480 body) | **Phase:** SMM

## Overview
SMM driver for Intel Purley (Skylake-SP Xeon) processor error handling. Handles Machine Check Architecture (MCA) errors, memory error correction reporting, IIO (Integrated IO) error handling, VTD/ITC/OTC/DMA error logging, and Post-Package Repair (PPR) / Thermal Alert System (TAS) management. Registers SMM SW dispatch handlers for periodic error processing and MCA SMI handlers for per-CPU machine check events. Supports up to 4 sockets with per-socket MCA bank configuration.

## Key Functions
- **ModuleEntryPoint** -- SMM entry point; initializes module, locates protocols, registers SMI handlers
- **McaHandler** -- MCA SMI handler: reads APIC ID, CPU topology, returns populated CpuInfo struct
- **LogErrorEvent** -- Central error logging dispatcher routing to domain-specific handlers
- **LogMcBankErrors** -- Iterates MCA banks, decodes MCi_STATUS/MSR, determines error severity
- **LogMemError** -- Full memory error reporting: decodes DIMM info, writes to lockbox
- **ProcessIioErrors** -- IIO error processing: checks VTD/ITC/OTC/DMA errors
- **ConfigureMcBanks** -- Per-socket MCA bank configuration enabling specific error types

## Protocols/Dependencies
- EFI_SMM_CPU_PROTOCOL, SMM SW Dispatch2 Protocol, Configuration Protocol
- IOH/Iio Protocol, Platform Info Protocol, SMM LockBox
- Lenovo-specific NVRAM for PprAddress storage

## Platform
Intel Purley (Skylake-SP Xeon), HR650X
Source: PurleyPlatPkg/Ras/Smm/ErrHandling/ProcessorErrorHandler/