# RomLayoutDxe

| Attribute     | Value                                                             |
|---------------|-------------------------------------------------------------------|
| Index         | 0000                                                              |
| Module        | RomLayoutDxe                                                      |
| Size (EFI)    | 7,264 bytes (1C60h)                                               |
| Phase         | DXE                                                               |
| Platform      | NeonCityFPGA                                                      |
| Framework     | UBA (Universal BIOS Architecture)                                 |
| Source Lines  | 1,051 (2 files)                                                   |

## Overview

RomLayoutDxe is a UEFI DXE driver that identifies the ROM layout for the NeonCityFPGA platform and registers UBA setup configuration. It caches the HOB (Hand-Off Block) list from the UEFI system configuration table and publishes a platform-specific setup configuration protocol through the UBA framework. The driver implements standard DXE helper functions for debug output and assertion handling.

## Key Functions

- `_ModuleEntryPoint` -- Entry point; initializes UEFI globals, locates the HOB list, finds the UBA NeonCityFPGA 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