# AcpiSmmPlatform

**Index:** 0213
**Size:** 34,916 bytes (8864h)
**Phase:** SMM (DXE_SMM_DRIVER)
**Source Package:** PurleyPlatPkg\Acpi\DxeSmm\AcpiSmm\AcpiSmmPlatform

## Overview
SMM driver for platform-specific ACPI SMI handling on Purley-based systems. Manages ACPI power management SMI events including system sleep state transitions (S3/S4/S5), platform PM1/PM control register trapping, and ACPI fixed event routing. Installs SMI handlers for power button, sleep button, and other ACPI-defined events. Part of the PurleyPlatPkg ACPI DXE/SMM stack that coordinates ACPI event handling between DXE and SMM phases.

## Key Functions
- **ModuleEntryPoint** -- Main entry: calls sub_5E4 init, then sub_C50 for ACPI SMM setup
- **sub_5E4** -- UEFI driver init: caches ImageHandle, SystemTable, BootServices, RuntimeServices
- **sub_C50** -- Core ACPI SMM platform initialization: registers PM1/SMI handlers
- **sub_1F20 / sub_360** -- ACPI event notification cleanup/teardown callbacks
- **sub_223C** -- Debug ASSERT handler
- **sub_B8C** -- Error path cleanup handler

## Protocols
- EFI_SMM_SYSTEM_TABLE2 for SMM services
- EFI_SMM_BASE2_PROTOCOL
- ACPI SMM platform protocol (platform-specific)
- Power Management 1 (PM1) register block trapping
- SMM IO trap protocol for PM IO port trapping

## Platform
HR650X (Purley), built from PurleyPlatPkg\Acpi\DxeSmm\AcpiSmm, DEBUG VS2015 X64
