S3SaveStateDxe
| Index |
Module |
Size |
Phase |
| 288 |
S3SaveStateDxe |
23,200 bytes (22.7 KB) |
DXE |
Overview
S3 Save State DXE Driver that preserves ACPI S3 resume context during the DXE phase. This module saves the FACS address, IDTR profile, and page tables into the SMM LockBox, and provides the EFI_S3_SAVE_STATE protocol for recording boot script entries. On SmmReadyToLock, it transitions the boot script buffer to SMM-owned memory and registers both S3 Save State and S3 SMM Save State protocol notifications.
Key Functions
- DriverEntryPoint -- Main DXE entry; initializes globals, schedules AcpiS3ContextInitialize, installs EFI S3 Save State protocol
- AcpiS3ContextInitialize -- Timer callback that locates FACS, builds IDTR profile, allocates NVS page table, saves ACPI S3 context into LockBox
- LocateAcpiFacsTable -- Searches ACPI tables (RSDP/XSDT/RSDT/FADT) for the FACS table
- AllocateS3NvsPageTable -- Allocates and builds the S3 resume page table (NX-compatible, self-referencing)
- BootScriptTableInit -- Initializes the boot script descriptor table and sets up SMM communication
- BootScriptBufferGrow -- Grows the boot script table when capacity is exhausted
- BootScriptClose -- Finalizes boot script entries and transitions buffer ownership
- BootScriptResync -- Re-synchronizes boot script state from LockBox after SMM takes ownership
- SaveLockBox / RestoreLockBox / UpdateLockBox -- SMM LockBox operations for boot script persistence
- ScriptIoWriteEntry / ScriptIoReadWriteEntry / ScriptMemWriteEntry / ScriptMemReadWriteEntry -- Boot script entry creators for I/O and memory access
- ScriptPciCfgWriteEntry / ScriptPciCfgReadWriteEntry / ScriptPciCfg2WriteEntry -- Boot script entries for PCI configuration space
- ScriptSmbusExecuteEntry -- Boot script entry for SMBus transactions
- ScriptPollInsert -- Boot script poll-until-match entry
- ScriptDispatchEntry / ScriptInformationEntry -- Dispatch and informational boot script entries
Dependencies
UEFI Boot Services, UEFI Runtime Services, ACPI Tables (FACS, FADT), SMM Communication Protocol, LockBox Protocol, PCD Protocol, HOB List
Lenovo HR650X (Purley/LBG-PCH), X64