# PlatformErrorHandler
**Index:** 0217 | **Size:** 44,388 bytes (177,536 body) | **Phase:** DXE/SMM

## Overview
SMM platform error handler for the Intel Purley platform, responsible for RAS (Reliability, Availability, Serviceability) error management. Initializes EMCA (Enhanced Machine Check Architecture) platform hooks, populates RAS topology structures (SMBIOS Type 16/17), configures FPGA error handling policies from UEFI setup variables, registers SMM software dispatch callbacks for error notification, and manages per-socket error tracking via linked callbacks.

## Key Functions
- **ModuleEntryPoint** (`_ModuleEntryPoint`) -- DXE/SMM entry, calls constructor dispatcher then main init
- **PlatformErrorHandlerConstructors** (`sub_30D8`) -- recovered alias for library constructor path
- **RegisterPlatformErrorHandler** (`sub_3550`) -- recovered alias for main init (calls core logic at `sub_3970`)
- **sub_3970** -- Core logic: reads RAS topology, applies error policy from setup, initializes EMCA platform hooks
- **PlatformErrorHandlerFallbackInit** (`sub_34E0`) -- recovered alias for error-path init helper
- **PlatformErrorHandlerSmmEntry** (`sub_594`) -- recovered alias for secondary SMM path
- **DispatchNotification** (`sub_3810`) / **DispatchWithEarlyOut** (`sub_3844`) -- callback dispatch helpers
- **RegisterErrorNotificationCallback** (`sub_36B8`) -- priority-sorted callback registration
- **RegisterErrorSource** (`sub_35C8`) -- source-registration linked list insertion

## Protocols/Dependencies
- EMCA Platform Protocol ({F4CCBFB7-...}), SMM MC Bank Protocol
- SMM IPMI Transport Protocol, SMM Variable Protocol
- SMM SW Dispatch2 Protocol, FPGA Configuration HOB

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