SioDxeInit
| Index |
Module |
Size |
Phase |
| 291 |
SioDxeInit |
10,624 bytes (10.4 KB) |
DXE |
Overview
Super I/O DXE Initialization Driver that configures the LPC I/O cycle decoding on the PCH and initializes the Super I/O controller. It manages port ranges for legacy devices (serial, parallel, GPIO, keyboard/mouse controller) connected via the LPC bus (typically to the AST2500 BMC or compatible SIO chipset). The driver caches boot/runtime services table pointers, detects the PCH SKU (LBG/LBG-H), and installs the SIO DXE Init protocol for downstream drivers.
Key Functions
- ModuleEntryPoint -- Saves EFI system table pointers; calls driver init routines
- ConfigureLpcDecode -- Configures LPC I/O cycle decode registers on the PCH via PCR and PCI config space
- ConfigureLpcIoRange -- Programs specific LPC I/O range windows for legacy device routing
- PchDetectSku -- Detects PCH SKU type (LBG, LBG-H, or unsupported)
- PchPcrWriteReg -- Writes to PCH Private Configuration Registers (PCR) via MMIO
- SetLpcRegisterRaw -- Raw LPC register access for low-level configuration
- GetPcdProtocol -- Locates and caches the Platform Configuration Database protocol
- GetHobList -- Retrieves the HOB (Hand-Off Block) list pointer
- GetConfigTable -- Retrieves system configuration tables (DXE Services Table)
- IoRead16 / IoRead32 / IoWrite16 / IoWrite32 -- Port I/O wrappers with AltRegister support
Dependencies
UEFI Boot Services, UEFI Runtime Services, DXE Services Table, PCD Protocol, MM PCI USRA Protocol, HOB List
Lenovo HR650X (Purley/LBG-PCH), X64, AST2500 BMC