| Address | Name | Description |
|---|---|---|
| ReadUnaligned64 | ||
| LogUbaMessage | ||
| UbaAssert | ||
| MatchHobGuid | ||
| GetHobList | ||
| _ModuleEntryPoint | ||
| Global | UEFI table pointers (set by _ModuleEntryPoint) | |
| EFI_HANDLE | gImageHandle = NULL; | |
| Cached | UBA debug protocol pointer | |
| VOID | *gUbaDebugProtocol = NULL; | |
| Cached | HOB list pointer | |
| VOID | *gHobList = NULL; | |
| UBA | Slot Data Update Protocol GUID | |
| STATIC | CONST EFI_GUID mSlotDataUpdateProtocolGuid = SLOT_DATA_UPDATE_PROTOCOL_GUID; | |
| Slot | Data Entry Protocol GUID | |
| STATIC | CONST EFI_GUID mSlotDataEntryGuid = SLOT_DATA_ENTRY_PROTOCOL_GUID; | |
| HOB | List GUID | |
| STATIC | CONST EFI_GUID mGetHobListGuid = GET_HOB_LIST_PROTOCOL_GUID; | |
| First | PSLT entry: physical slot configuration for CLX64L platform | |
| STATIC | CONST PSLT_HEADER mSlotTableEntry1 = { | |
| Signature | = "PSLT" | |
| Version | 0xBA0, // TableOffset | |
| TableLength | { // SlotData[24]: | |
| Slot | 0: B0:D2:F0 -> Port 1 | |
| Slot | 1: B1:D2:F1 -> Port 0 | |
| Slot | mapping attribute | |
| Reserved | 0x00, 0x00, 0x00, 0x00, // Reserved | |
| Reserved | } | |
| Second | PSLT entry: extended slot configuration | |
| Contains | null table offset (placeholder/reserved entry) | |
| STATIC | CONST PSLT_HEADER mSlotTableEntry2 = { | |
| No | slot mapping | |
| Reserved | 0xB4, 0x04, 0x00, 0x00, // Secondary table reference | |
| UBA | debug protocol GUID (internal UBA protocol for debug services) | |
| This | GUID varies by platform; located via gBS->LocateProtocol | |
| STATIC | CONST EFI_GUID mUbaDebugProtocolGuid = { | |
| Return | cached protocol if already located | |
| if | (gUbaDebugProtocol != NULL) { | |
| Allocate | pool for the protocol instance | |
| Status | = gBootServices->AllocatePool ( | |
| Zero | the allocated pool | |
| Locate | the UBA debug protocol | |
| Status | = gBootServices->LocateProtocol ( | |
| Read | CMOS debug level | |
| CmosIndex | = __inbyte (RTC_INDEX_PORT); | |
| Determine | if debug is enabled for this severity | |
| if | (DebugLevel > 3) { | |
| if | (DebugLevel == 0) { | |
| Map | debug level to UBA severity mask | |
| SeverityLevel | = (DebugLevel == 1) ? | |
| If | severity matches, forward to UBA debug print | |
| if | ((SeverityLevel & Severity) != 0) { | |
| Read | the first 8 bytes of the HOB header | |
| Guid1 | = ReadUnaligned64 (HobEntry); | |
| Return | cached HOB list if already located | |
| if | (gHobList != NULL) { | |
| Initialize | // | |
| Iterate | through HOB entries from the system table | |
| if | (gSystemTable->NumberOfTableEntries != 0) { | |
| Found | matching HOB; return the data field at offset 16 | |
| Result | = (UINT64 )((UINTN)gSystemTable->ConfigurationTable + | |
| No | matching HOB found - assert | |
| LogUbaMessage | ( | |
| Verify | HOB list was found | |
| if | (gHobList == NULL) { | |
| Save | global UEFI table pointers | |
| gImageHandle | = ImageHandle; | |
| Cache | boot services pointer from system table (offset 0x60) | |
| gBootServices | = SystemTable->BootServices; | |
| Cache | runtime services pointer from system table (offset 0x58) | |
| gRuntimeServices | = SystemTable->RuntimeServices; | |
| Initialize | HOB list cache | |
| GetHobList | (0); | |
| Log | initialization message | |
| LogUbaMessage | (UBA_DEBUG_ERROR, "UBA:SlotDataUpdate-TypeClx64L\n"); | |
| Locate | the UBA Slot Data Update protocol (BootServices->LocateProtocol) | |
| Install | first PSLT entry: physical slot table (40 bytes) | |
| Status | = SlotProtocol->GetSlotData ( | |
| Install | second PSLT entry: extended slot config (40 bytes) | |
| return | SlotProtocol->GetSlotData ( |
Generated by HR650X BIOS Decompilation Project