# SmmPciRbIo

| Field | Value |
|---|---|
| Index | 0199 |
| Size | 13,188 bytes (12.9 KB) |
| Phase | SMM (System Management Mode) |
| PE format | PE32+ x86-64, 5 sections |
| Source | `AmiModulePkg/PCI/SmmPciRbIo/SmmPciRbIo.c` |

## Overview

SMM PCI Root Bridge I/O access driver. The recovered code provides a PCI
configuration-space abstraction that can run from SMM, including legacy
CF8/CFC access, PCIe enhanced configuration, bus translation, and teardown
paths for runtime and S3 resume.

## Key Functions

- `ModuleEntryPoint` - SMM entry; library init and PCI RbIo setup
- `SmmPciRbIoLibraryConstructor` (recovered from `sub_544`) - AutoGen library constructor
- `SmmPciRbIoInitialize` (recovered from `sub_1148`) - core PCI Root Bridge I/O initialization
- `SmmPciRbIoLibraryDestructor` (recovered from `sub_1530`) - library destructor
- `SmmPciRbIoUnload` (recovered from `sub_340`) - manual unload handler
- `SmmPciRbIoFailurePath` (recovered from `sub_1664`) - failure-path handler
- `SmmPciRbIoNeedsInitialization` (recovered from `sub_2A0`) - early PCI configuration-space enumeration
- `SmmPciRbIoAssertionFailure` (recovered from `sub_14F0`) - assertion/guard path retained from AutoGen

## Protocols

- `SmmBase2`
- `SmmPciRbIo`
- `SmmCpuIo2`

## Recovered Symbol Mapping (module-local)

- `qword_3098` -> `mSmmPciRbIoStatus`
- `unk_2FA0` -> `mSmmPciRbIoContext`

## Platform

HR650X BIOS SMM infrastructure, `AmiModulePkg/PCI/SmmPciRbIo`
