| Address | Name | Description | |
|---|---|---|---|
| GetSlotCount | |||
| UbaDebugPrint | |||
| UbaDebugAssert | |||
| IsHobGuidMatch | |||
| ReadUnaligned64 | |||
| _ModuleEntryPoint | |||
| GUID | Definitions (.data at 0xB60-0xBAF) | ||
| GUID | Externs (alias of STATIC definitions for any external consumers) | ||
| Global | Variables (.data at 0xC08-0xC28) | ||
| PSLT | Output Buffers (.data initialized data) | ||
| Debug | Strings (.rdata section, read-only) | ||
| GetSlotCount | (0x4B0) | ||
| GetSlotData | (0x4B4) | ||
| UbaGetProtocolInterface | (0x4B8) | ||
| Raise | to TPL_HIGH_LEVEL, then restore to sample current TPL level. | ||
| LocateProtocol | can only be called safely at TPL_NOTIFY or below. | ||
| OldTpl | = gBootServices->RaiseTPL (TPL_HIGH_LEVEL); | ||
| Registration | key not used | ||
| UbaDebugPrint | (0x538) | ||
| Read | CMOS register 0x4B. | ||
| Preserve | the NMI enable bit (bit 7) through the index write. | ||
| NmiSave | = IoRead8 (CMOS_INDEX_PORT); | ||
| Translate | CMOS value into platform type for debug mask selection. | ||
| if | (CmosData > 3) { | ||
| Values | > 3 are platform type indicators. Use cached type, or | ||
| derive | from hardware strap if first access. | ||
| PlatformType | = mPlatformType; | ||
| Read | hardware strap register from PCH MMIO. | ||
| Bit | 1 indicates platform variant; OR with 1 ensures non-zero. | ||
| PlatformType | **= (MmioRead8 (PLATFORM_STRAP_MMIO_ADDR) & 0x02) | 0x01;** | |
| Values | 0-3 are direct verbosity levels. | ||
| PlatformType | = CmosData; | ||
| Map | platform type to debug severity mask. | ||
| Type | **>= 1 produces either DE | DI (type 1) or DE | DV (type 2+).** |
| Type | 0 suppresses all output. | ||
| if | (PlatformType >= 1) { | ||
| Forward | to protocol DebugPrint if severity matches. | ||
| if | ((DebugMask & DebugLevel) != 0) { | ||
| UbaDebugAssert | (0x5C0) | ||
| GetHobList | (0x600) | ||
| If | HOB list not found, assert with EFI_NOT_FOUND. | ||
| if | (mHobList == NULL) { | ||
| IsHobGuidMatch | (0x6D8) | ||
| ReadUnaligned64 | (0x748) | ||
| _ModuleEntryPoint | (0x390) | ||
| Phase | 1: Cache and validate global service table pointers. | ||
| while | the other three use UefiBootServicesTableLib.c. | ||
| This | reflects the different library each global comes from. | ||
| UbaDebugAssert | (mRuntimeServicesLibPath, 47, mAssertRuntimeServicesStr); | ||
| Phase | 2: Initialize HOB list from configuration table. | ||
| Phase | 3: Emit driver identification into debug output. | ||
| Phase | 4: Locate the UBA CONFIG protocol interface. | ||
| This | uses the PROTOCOL GUID AT 0xB70 (E03E0D46-...) | ||
| which | is SEPARATE from the DEBUG protocol at 0xB60 | ||
| used | by UbaGetProtocolInterface/DebugPrint/DebugAssert. | ||
| The | config protocol provides GetData at vtable +0x10 | ||
| which | reads PSLT entries from the UBA configuration store. | ||
| No | registration key | ||
| Phase | 5: Read PSLT entry 1 (slot data) from UBA configuration. | ||
| 32 | bytes = PSLT_HEADER | ||
| Phase | 6: Read PSLT entry 2 (slot config) from UBA configuration. | ||
| 40 | bytes = SLOT_CONFIG |
Generated by HR650X BIOS Decompilation Project