Newer
Older
AMI-Aptio-BIOS-Reversed / SmbiosType11 / SmbiosType11.md
@Ajax Dong Ajax Dong 2 days ago 4 KB Init

SmbiosType11

Function Table

Address Name Description
sub_C00
sub_E78
sub_EE4
sub_FEC
sub_10F8
sub_1184
sub_1248
sub_1278
sub_134C
sub_13C0
sub_1A00
sub_1A20
sub_1AD8
sub_1B50
ModuleEntryPoint
sub_384
sub_550
sub_7F8
sub_954
sub_F64
sub_102C
sub_1090
sub_1560
sub_1B10
Global data
unk_2EB8 EFI_SYSTEM_TABLE *SystemTable; // qword_2EA8
qword_2EB0 EFI_RUNTIME_SERVICES *RuntimeServices; // qword_2EC0
qword_2EE0 EFI_SMBIOS_PROTOCOL *gSmbios; // qword_2EA0
qword_2ED0 EFI_SMM_COMMUNICATION *mSmmPciBase; // qword_2EC8
qword_2EE8 // ---------------------------------------------------------------------------
GUID definitions
Forward declarations
Entry Point
Driver Initialization (sub_384)
SMBIOS Type 11 Support Install (sub_550)
ME Status IPMI SEL Logging (sub_640)
Set PCD value based on FS[3:0]
ME in recovery mode
Build IPMI STORAGE_ADD_SEL_ENTRY command data
Record type, timestamp, event data format follow IPMI spec
Encode ME FS info into SEL event data bytes
Main SMBIOS Type 11 Installer (sub_954)
Locate BMC Self Test Log Protocol
Get SPS version string
Log ME status to SEL
Update SMBIOS Type 11 table
SMBIOS OEM Strings
Remove existing entries and add new ones
Unicode String Length (sub_C00)
Check for overlap
Copy "INVALID" string (sub_DD0)
Check overlap conditions
ASCII String Length (sub_E78)
Debug Print Protocol (lazy init) (sub_EE4)
Debug Print (sub_F64)
Read CMOS index 0x4B (debug level register)
Debug Assert Handler (sub_FEC)
ZeroMem (sub_102C)
GUID Compare (sub_1090)
PCD Protocol Lookup (lazy init) (sub_10F8)
Configuration Table Lookup by GUID (sub_1184)
MMIO PCI Read (sub_1248)
MMIO address low part
Command / access type
HOB List Initialization (sub_1278)
Find Resource Descriptor HOB (sub_12FC)
HobType == END_OF_HOB_LIST
HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR
Next HOB by Header.HobLength
Integer to ASCII (sub_134C)
ASCII String to Integer (sub_13C0)
Skip leading spaces and tabs
Actually CHAR16 stride? But String is char* - likely ASCII
EFI Status Code to String (sub_1498)
EFI_INTERRUPT_PENDING strings
Warnings if ((Status & 0x2000000000000000LL) == 0)
Unicode SPrint wrapper (sub_1560)
Core Unicode VSPrint (sub_1588)
Parse precision flag
Parse width
Handle %g / %G (GUID format)
Now parse d, i, x, X, p
Skip unknown format
pointer DigitP = sub_134C (ArgPtr[1], DigitBuf2, Radix, 0);
Uppercase hex digits
Width padding
Copy digits
Unicode SPrint (va_list) (sub_1A00)
Get ME Firmware Status from HOB (sub_1A20)
Unaligned Read 8 bytes (sub_1AD8)
CPUID Wrapper (sub_1B10)
ZeroMem (sub_1B50) - jump to sub_1B5E
memset (sub_1B5E)
Write aligned dwords
memcpy (sub_1BB0)
If overlapping and Src < Dst, copy from end
Use aligned copy for sizes >= 8 and sufficient distance
Align Src and Dst to same offset
Copy 8 bytes at a time
Simple memset (sub_2A0)

Generated by HR650X BIOS Decompilation Project