SmmAccess
Index: 0112 | Size: 88.2 KB | Phase: DXE/SMM | Arch: X64
Overview
SMM Access driver for the Purley platform that manages SMRAM (System Management RAM) region configuration and access control. Implements EFI_SMM_ACCESS_PROTOCOL to open/close SMRAM windows, lock SMRAM against unauthorized access, and enumerate SMRAM descriptors. Integrates with S3 boot script to save/restore SMRAM configuration across S3 resume, and configures serial port (UART) baud rate from CMOS.
Key Functions
- SmmAccessDriverEntry (0x6E0): Main driver initialization -- locates PCD database, retrieves HOB list, configures PCI express base address, programs serial port baud rate from CMOS
- UefiBootServicesTableLibConstructor: Caches protocol tables, reads UART configuration from CMOS index 0x5C, programs 16550-compatible UART, calls S3BootScriptLibInit
- ModuleEntryPoint (0x3D4): AutoGen entry point, calls SmmAccessDriverEntry
- S3BootScriptLibInit: Initializes S3 boot script context
- sub_1D20: SMRAM region enumeration from HOB data
Protocols/Dependencies
- EFI_SMM_ACCESS_PROTOCOL (SMRAM open/close/lock operations)
- PCD Database Protocol, Boot Script Library
- SmmLockBox for S3 boot script persistence
- CMOS NVRAM (I/O ports 0x70/0x71) for UART baud rate configuration
- Source: PurleySktPkg/Smm/Access/SmmAccessDriver.c
Intel Purley platform (PurleySktPkg), Lenovo HR650X. DEBUG_VS2015 X64 build.