Lenovo Server DXE driver implementing IPMI-based platform management. It provides boot-time initialization, ReadyToBoot and ExitBootServices event handling, periodic platform configuration via the LnvSetup UEFI variable, boot current tracking, and IPMI transport protocol management. The driver registers timer callbacks that read LnvSetup configuration bytes and send corresponding IPMI commands (netfn 0x80, cmd 0x8258) for fan control and other platform settings.
| Function | Description |
|---|---|
_ModuleEntryPoint |
UEFI driver entry point; initializes globals then calls main init |
LnvDriverDxeInitGlobals |
Stores ImageHandle/SystemTable/BootServices/RuntimeServices; locates or registers for IPMI transport protocol |
LnvDriverDxeInit |
Creates ReadyToBoot and ExitBootServices notification events; creates two 1-second periodic timer events for LnvSetup config callbacks |
OnReadyToBoot |
ReadyToBoot callback; reads LnvSetup offset 5, sends IPMI command 0x8258 for fan control config |
OnExitBootServices |
ExitBootServices callback; applies final configuration via LnvSetupConfigCallback1 and closes the event |
LnvSetupConfigCallback0 |
Periodic timer callback; reads LnvSetup offset 6, sends IPMI command |
LnvSetupConfigCallback1 |
Periodic timer callback; reads LnvSetup offset 7, sends IPMI command |
IpmiSendCommand |
Sends IPMI command via the transport protocol |
GetProtocolInterface |
Locates and caches the debug protocol interface |
DebugPrint |
Debug print via protocol interface with level filtering |
DebugAssert |
Low-level assertion handler via debug protocol |
GetHobList |
Retrieves HOB list pointer from system table |
GetDebugLevel |
Reads current debug level from CMOS index 0x4B |
Lenovo ThinkSystem HR650X (Purley platform, Intel Xeon Scalable)