# OpromUpdateDxeNeonCityFPGA

| Attribute     | Value                                                             |
|---------------|-------------------------------------------------------------------|
| Index         | 0006                                                              |
| Module        | OpromUpdateDxeNeonCityFPGA                                        |
| Size (EFI)    | 4,192 bytes (1060h)                                               |
| Phase         | DXE                                                               |
| Platform      | NeonCityFPGA                                                      |
| Framework     | UBA (Universal BIOS Architecture)                                 |
| Source Lines  | 915 (2 files)                                                     |

## Overview

OpromUpdateDxeNeonCityFPGA provides Option ROM (OpROM) update configuration for the NeonCityFPGA platform via the UBA protocol. It registers callback functions that define PCIe slot-to-adapter mappings, enabling the platform to correctly configure option ROMs for installed PCIe devices. The driver scans for enabled PCIe slots via the PCI Root Bridge I/O Protocol and publishes OpROM configuration data through UBA callbacks.

## Key Functions

- `_ModuleEntryPoint` -- Entry point; caches system table pointers, locates HOB list, finds UBA protocol, registers OpROM configuration
- `GetHobList` -- Scans SystemTable->ConfigurationTable[] for EFI_HOB_LIST_GUID
- `GetDebugProtocol` -- Resolves and caches DebugLib protocol interface
- `DebugPrint` -- Debug output via DebugLib protocol
- `DebugAssert` -- Assertion handler via DebugLib protocol
- `IsGuidEqual` -- Two-64-bit GUID comparison
- `GetPcieSlotConfigProtocol0` -- Callback that provides PCIe slot configuration protocol
- `ReadUnaligned64` -- Unaligned 64-bit memory read with NULL check

## Dependencies

- UEFI Boot Services (gBS->LocateProtocol)
- UBA NeonCityFPGA Board-Type Protocol ({E03E0D46-5263-4845-B0A4-58D57B3177E2})
- PCI Root Bridge I/O Protocol
- DebugLib Protocol ({36232936-0E76-31C8-A13A-3AF2FC1C3932})
- OpROM Update Config GUID

## Platform

- Architecture: x86-64 (PE32+)
- Machine: 0x8664
- Subsystem: EFI Boot Service Driver (0x000B)
- Toolchain: VS2015, X64 DEBUG
- Sections: 6 (.text, .rdata, .data, .idata, .reloc)
- Entry Point: 0x390