# 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` — AutoGen library constructor.
- `SmmPciRbIoInitialize` — Core PCI Root Bridge I/O initialization.
- `SmmPciRbIoLibraryDestructor` — Library destructor.
- `SmmPciRbIoUnload` — Manual unload/unregister handler.
- `SmmPciRbIoFailurePath` — Failure-path handler.
- `SmmPciRbIoNeedsInitialization` — Early PCI configuration-space enumeration gate.
- `SmmPciRbIoAssertionFailure` — AutoGen assertion/guard fallback path.

### Recovered Function Map

| Recovered Name | Source Symbol |
|---|---|
| `SmmPciRbIoLibraryConstructor` | `sub_544` |
| `SmmPciRbIoInitialize` | `sub_1148` |
| `SmmPciRbIoLibraryDestructor` | `sub_1530` |
| `SmmPciRbIoUnload` | `sub_340` |
| `SmmPciRbIoAssertionFailure` | `sub_14F0` |
| `SmmPciRbIoFailurePath` | `sub_1664` |
| `SmmPciRbIoNeedsInitialization` | `sub_2A0` |

## Protocols

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

## Recovered Symbol Mapping (module-local)

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

## Platform

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