# SetupConfigUpdateDxeNeonCityFPGA

| Attribute     | Value                                                             |
|---------------|-------------------------------------------------------------------|
| Index         | 0007                                                              |
| Module        | SetupConfigUpdateDxeNeonCityFPGA                                  |
| Size (EFI)    | 3,232 bytes (CA0h)                                                |
| Phase         | DXE                                                               |
| Platform      | NeonCityFPGA                                                      |
| Framework     | UBA (Universal BIOS Architecture)                                 |
| Source Lines  | 1,054 (2 files)                                                   |

## Overview

SetupConfigUpdateDxeNeonCityFPGA registers UBA setup configuration for the NeonCityFPGA platform. It follows the same structure as RomLayoutDxe (index 0000): initializes UEFI globals, locates the HOB list, finds the UBA NeonCityFPGA board-type protocol, and registers the setup configuration protocol. The driver is binary-identical to RomLayoutDxe, sharing the exact same code, GUIDs, and function layout.

## Key Functions

- `_ModuleEntryPoint` -- Entry point; initializes UEFI globals, locates the HOB list, finds the UBA board-type protocol, and registers setup configuration
- `GetHobList` -- Scans SystemTable->ConfigurationTable[] for EFI_HOB_LIST_GUID
- `GetDebugProtocol` -- Locates and caches the DebugLib protocol interface
- `DebugPrint` -- Checks CMOS debug level and calls DebugLib protocol output
- `DebugAssert` -- Calls DebugLib protocol assertion handler
- `IsHobListGuid` -- Optimized GUID comparison using two 64-bit unaligned reads
- `ReadUnaligned64` -- Reads a 64-bit value from potentially unaligned memory

## Dependencies

- UEFI Boot Services (gBS->LocateProtocol)
- UBA NeonCityFPGA Board-Type Protocol ({E03E0D46-5263-4845-B0A4-58D57B3177E2})
- UBA NeonCityFPGA Setup Config Protocol ({CD1F9574-DD03-4196-96AD-4965146F9665})
- DebugLib Protocol ({36232936-0E76-31C8-A13A-3AF2FC1C3932})
- CMOS RTC ports (0x70/0x71) for debug level at index 0x4B

## 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

## Notes

This module is binary-identical to RomLayoutDxe (index 0000). Both drivers contain the exact same code, GUIDs, and function layout. They appear as separate FFS files in the BIOS image with different FFS GUIDs, likely to satisfy platform firmware volume layout requirements while sharing a single PE32 body.