| Address | Name | Description |
|---|---|---|
| DebugAssert | ||
| DebugPrint | ||
| StrLen | ||
| AsciiStrLen | ||
| ReadUnaligned64 | ||
| CompareGuid | ||
| OemSaveSmbiosPcdvalue | ||
| OemRestoreSmbiosPcdvalue | ||
| OemRestoreSmbiosString | ||
| OemSaveSmbiosDxeEntryPoint | ||
| OemSaveSmbiosDxeEntry | ||
| EFI | global variable storage | |
| EFI_HANDLE | gImageHandle; | |
| EFI_SMBIOS_PROTOCOL | *gSmbiosProtocol = NULL; // qword_2F68 | |
| qword_2F70 | VOID *mHobList = NULL; // qword_2F78 | |
| Control | flags | set by OemRestoreSmbiosPcdvalue, consumed by OemRestoreSmbiosString |
| BOOLEAN | gSystemManufacturerRestored = FALSE; // byte_2F18 Token 118 | |
| byte_2F19 | Token 117 | |
| byte_2F1A | Token 119 | |
| byte_2F1B | Token 120 | |
| byte_2F1C | Token 187 | |
| byte_2F30 | Token 121 | |
| byte_2F31 | Token 122 | |
| byte_2F32 | Token 123 | |
| byte_2F33 | Token 124 | |
| byte_2F34 | Token 125 | |
| byte_2F10 | Token 126 | |
| byte_2F11 | Token 127 | |
| byte_2F12 | Token 128 | |
| byte_2F13 | Token 129 | |
| byte_2F14 | Token 188 | |
| GUID | definitions | |
| gEfiSmbiosProtocolGuid | -- from unk_2EC0 | |
| gHobListGuid | -- from unk_2EF0 | |
| gPcdProtocolGuid | -- from unk_2ED0 | |
| Utility | / library wrapper functions | |
| No | overlap: copy forwards in 8-byte chunks | |
| Copy | remaining bytes | |
| Read | CMOS index 0x4B to get debug level | |
| DebugLevel | = IoRead8 (0x70); | |
| OemSaveSmbiosPcdvalue | -- sub_41C | |
| Reads | all system/board/chassis PCD values and saves them into the | |
| OemSmbiosPcdValue | UEFI variable. | |
| System | information buffers (280 bytes each for SMBIOS strings) | |
| CHAR8 | SmbiosStrings[13][280]; | |
| Read | existing variable (may not exist on first boot) | |
| DataSize | = sizeof (Buffer); | |
| PCD | Token 118 - System Manufacturer | |
| Pcd | = GetPcdProtocol (); | |
| PCD | Token 117 - System Product Name | |
| PCD | Token 119 - System Version | |
| PCD | Token 120 - System Serial Number | |
| PCD | Token 187 - System UUID | |
| PCD | Token 121 - Base Board Manufacturer | |
| PCD | Token 122 - Base Board Product Name | |
| PCD | Token 123 - Base Board Version | |
| PCD | Token 124 - Base Board Serial Number | |
| PCD | Token 125 - Base Board Asset Tag | |
| PCD | Token 126 - Chassis Manufacturer | |
| PCD | Token 127 - Chassis Version | |
| PCD | Token 128 - Chassis Serial Number | |
| PCD | Token 129 - Chassis Asset Tag | |
| PCD | Token 188 - Chassis Type: if not 2, save byte from chassis asset tag slot | |
| Write | the variable | |
| VarSize | = 3657; | |
| OemRestoreSmbiosPcdvalue | -- sub_A70 | |
| Reads | the OemSmbiosPcdValue variable and restores PCD tokens that still | |
| contain | default ("To be filled by O.E.M.") values. | |
| Token | 118 - System Manufacturer | |
| Token | 117 - System Product Name (offset 0x148 in Buffer = 280 bytes) | |
| Token | 119 - System Version (offset 0x260) | |
| Token | 120 - System Serial Number (offset 0x378) | |
| Token | 187 - System UUID (offset 0x490, 16 bytes) | |
| Token | 121 - Base Board Manufacturer (offset 0x4A0) | |
| Token | 122 - Base Board Product Name (offset 0x5B8) | |
| Token | 123 - Base Board Version (offset 0x6D0) | |
| Token | 124 - Base Board Serial Number (offset 0x7E8) | |
| Token | 125 - Base Board Asset Tag (offset 0x900) | |
| Token | 126 - Chassis Manufacturer (offset 0xA18) | |
| Token | 127 - Chassis Version (offset 0xB30) | |
| Token | 128 - Chassis Serial Number (offset 0xC48) | |
| Token | 129 - Chassis Asset Tag (offset 0xD60) | |
| Token | 188 - Chassis Type: if already 2, skip; otherwise restore from saved byte | |
| OemRestoreSmbiosString | -- sub_1138 | |
| Applies | restored PCD values into the SMBIOS table via EFI_SMBIOS_PROTOCOL. | |
| For | each type (1=System, 2=BaseBoard, 3=Chassis), if the corresponding | |
| restore | flag is set, writes the string into the SMBIOS record. | |
| Status | = gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, (VOID )&Smbios);** | |
| TargetType | = 1; | |
| UNI_BIOS_SPECIFICATION | handle | |
| Read | CMOS to check if this is a ThinkSystem platform | |
| IoWrite8 | (0x72, 0x5C); | |
| Prepend | "ThinkSystem " prefix | |
| System | UUID: read from saved 16-byte UUID in buffer (offset 0x490) | |
| if | (gSystemUuidRestored) { | |
| TargetType | = 2; | |
| TargetType | = 3; | |
| Chassis | type byte at buffer+0xD60+280 (= offset 0xE78 from buffer start) | |
| if | (gChassisTypeRestored) { | |
| OemSaveSmbiosDxeEntryPoint | -- _ModuleEntryPoint | |
| Driver | entry point. Initializes globals, then calls the three main | |
| routines | in order: OemRestoreSmbiosPcdvalue, OemSaveSmbiosPcdvalue | |
| Initialize | HOB list | |
| GetHobList | (); | |
| Standard | UEFI DXE driver entry. |
Generated by HR650X BIOS Decompilation Project