Newer
Older
AMI-Aptio-BIOS-Reversed / SioDxeInit / README.md
@Ajax Dong Ajax Dong 2 days ago 1 KB Init

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

Platform

Lenovo HR650X (Purley/LBG-PCH), X64, AST2500 BMC