# CRBDxe Function Map

This map is a cleaned navigation layer over `CRBDxe.c`. It preserves recovered
function names and addresses while grouping them by apparent responsibility.

## Entry and Constructor Path

| Address | Function | Notes |
|---------|----------|-------|
| 0x390 | `ModuleEntryPoint` | Calls UEFI service constructor, then dispatches PCH RC entry. |
| 0x3ac | `UefiBootServicesTableLibConstructor` | Initializes global UEFI service pointers and DXE services table. |
| 0x5dc | `PchRcConfigDriverEntry` | Registers protocol notifications and starts configuration synchronization. |
| 0x6f0 | `PchRcConfigUpdate` | Reads and applies PCH RC configuration data. |
| 0x840 | `PciClassCodeQuery` | Protocol notify callback path for PCI class-code checks. |
| 0x9c8 | `OptimizedBootConfig` | Reads network stack configuration and registers PCI I/O notification. |

## SMBIOS Type 9 / PCIe Slot Handling

| Address | Function | Notes |
|---------|----------|-------|
| 0xb7c | `SmbiosType9FillSlotTable` | Allocates and fills SMBIOS slot records. |
| 0xc98 | `PciConfigBitParse` | Walks PCIe capabilities to extract link speed and width. |
| 0xdb4 | `SmbiosType9SlotUpdateHelper` | Updates slot data from PCIe/GPIO/platform inputs. |
| 0x1658 | `SmbiosType9TableUpdate` | Main table update path. |
| 0x1844 | `SmbiosType9SetSlotId` | Slot identifier helper. |
| 0x1858 | `SmbiosType9GetSlotConfig` | Slot configuration lookup helper. |
| 0x2618 | `SmbiosType9SlotDataValidate` | Validates recovered slot data fields. |

## CRB / Protocol Notification

| Address | Function | Notes |
|---------|----------|-------|
| 0x1004 | `CrbDriverEntryPoint` | Protocol notification entry for the CRB-related path. |
| 0x1824 | `UefiLibCreateProtocolNotifyEvent` | Recovered UEFI library helper for protocol notification setup. |
| 0x16ac | `NotifyFunctionCallback` | Callback used by protocol-notify registration. |

## Memory, Allocation, and Debug Helpers

| Address | Function | Notes |
|---------|----------|-------|
| 0x2a0 | `InternalMemCopyMem` | Overlap-aware copy helper. |
| 0x2f0 | `MemCopyForward` | Byte-fill wrapper around `memset`. |
| 0x310 | `MemCopyBackward` | Zero-fill helper. |
| 0x172c | `DebugLogPrint` | Debug print wrapper. |
| 0x1774 | `AssertCpuDeadLoop` | Assertion failure path. |
| 0x18c4 | `CopyMemWrapper` | Copy helper wrapper. |
| 0x19b4 | `SetMemWrapper` | Set-memory helper wrapper. |
| 0x1a24 | `CompareMemWrapper` | Compare-memory wrapper. |
| 0x1b18 | `AllocatePoolWrapper` | Pool allocation wrapper. |
| 0x1b48 | `AllocateZeroPoolWrapper` | Zeroed pool allocation wrapper. |
| 0x1bb0 | `DxeServicesTableRegister` | DXE services table registration helper. |

## GPIO and MMIO Helpers

| Address | Function | Notes |
|---------|----------|-------|
| 0x24c8 | `MmioReadHelper` | MMIO read helper used by validation paths. |
| 0x2e1c | `GpioGetPadConfig` | Reads GPIO pad configuration. |
| 0x2e80 | `GpioSetPadConfig` | Writes GPIO pad configuration. |
| 0x2ee0 | `GpioCheckPadOverride` | Checks pad override status. |
| 0x2f88 | `GpioPadCfgValidate` | Validates pad configuration fields. |
| 0x3158 | `GpioGroupCheck` | Checks GPIO group metadata. |
| 0x3200 | `GpioGetPadCfgBase` | Calculates pad configuration base address. |
| 0x32d8 | `GpioGetChipsetId` | Recovers chipset ID. |
| 0x3458 | `MmioRead16` | 16-bit MMIO read. |
| 0x3468 | `MmioGetBaseAddr` | MMIO base calculation helper. |
| 0x3478 | `MmioWrite16` | 16-bit MMIO write. |

## Cleanup Notes

- Keep function addresses and raw decompiler names when evidence is incomplete.
- Add recovered semantic names only when they are supported by strings, GUIDs,
  protocol use, or direct call context.
- Avoid changing control flow in this source without a separate behavioral
  analysis pass.
