# POSTDataTransfer

| Field       | Value                                    |
|-------------|------------------------------------------|
| Index       | 0098                                     |
| Module      | POSTDataTransfer                         |
| Image       | POSTDataTransfer.efi                     |
| Size        | 10,368 bytes (5 sections, PE32+)         |
| SHA256      | 3ac1405e528552093f1220f0d141164c191d79.. |
| Subsystem   | DXE Driver (0Bh)                         |
| Functions   | ~25                                      |

## Overview

DXE driver that collects PCI bus configuration data and IIO SAD/AD (Socket Address Decoder / Adapter Decoder) topology data during POST and transmits it to the BMC via IPMI transport. Enumerates all PCI buses/devices/functions reporting vendor/device IDs, then collects per-socket IIO bus numbers and SAD/AD topology from a 696-entry lookup table to report the complete platform interconnect map to the BMC for out-of-band management.

## Key Functions

- `ModuleEntryPoint` -- initializes the driver and schedules collection timer
- `ProcessPci` -- enumerates all PCI buses/devices/functions
- `ProcessSADTAD` -- collects IIO bus numbers and SAD/AD topology per socket
- `CollectPOSTData` -- timer callback orchestrating PCI and SAD/AD collection
- `MmioPciExpressRead32` / `PciExpressBaseAddr` -- PCIe MMIO config space accessors

## Dependencies

- gEfiPciRootBridgeIoProtocolGuid
- gEfiIioUdsProtocolGuid (IIO UDS protocol)
- gEfiCpuCsrAccessGuid (CPU CSR access)
- gEfiDebugPortProtocolGuid
- gIpmiTransportProtocolGuid
- 696-entry SAD/AD topology lookup table

## Platform

Lenovo HR650X, Purley platform.