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

SmmPciRbIo

  • Index: 0199
  • Size: 13,188 bytes (12.9 KB)
  • Phase: SMM (System Management Mode)
  • PE Format: PE32+ x86-64, 5 sections (.text, .rdata, .data, section_3, .xdata)

Overview

SMM driver for PCI Root Bridge I/O access. Part of the AmiModulePkg/PCI/SmmPciRbIo package. This driver provides a root bridge I/O abstraction that operates from SMM context, allowing SMM code to perform PCI configuration cycles (both legacy CF8/CFC and PCIe enhanced configuration) independent of the DXE PCI infrastructure. It handles bus number translation, device enumeration, and memory-mapped PCIe configuration space access. This is essential for SMM drivers that need to query or configure PCI devices during runtime or S3 resume.

Key Functions

  • ModuleEntryPoint -- Standard SMM entry; library init and PCI RbIo setup
  • sub_544 -- AutoGen library constructor
  • sub_1148 -- Core PCI Root Bridge I/O initialization (segment groups, bus range detection)
  • sub_1530 -- Library destructor
  • sub_340 -- Manual unload handler
  • sub_1664 -- Error handler for PCI RbIo failures
  • sub_2A0 -- Early PCI configuration space enumeration

Protocols

  • SmmBase2 Protocol -- SMM entry point
  • SmmPciRbIo Protocol -- Root bridge PCI I/O abstraction (PciRead/PciWrite via SMM)
  • SmmCpuIo2 Protocol -- CPU I/O access in SMM

Platform

  • Build: HR6N0XMLK DEBUG_VS2015 X64
  • Source: AmiModulePkg/PCI/SmmPciRbIo
  • Part of: HR650X BIOS SMM infrastructure (indices 0195-0199, 0201-0203)