Newer
Older
AMI-Aptio-BIOS-Reversed / MultiSkuDistinctionDxe / README.md
@Ajax Dong Ajax Dong 2 days ago 1 KB Init

MultiSkuDistinctionDxe

Index: 0273 | Size: 3.4 KB | Phase: DXE | Arch: X64

Overview

Minimal DXE driver that identifies the system SKU type (platform variant) and publishes a SKU protocol for other drivers. Reads the SKU identification byte from CMOS RTC index 0x4B (or a fallback memory-mapped byte at 0xFDAF0490), extracts multi-SKU information from a GUID-extension HOB (gLenovoMultiSkuHobGuid), and installs the SKU protocol. If the SKU is unified/unknown (0x55 = 'U'), the protocol installation is deferred until ExitBootServices.

Key Functions

  • MultiSkuDistinctionDxeEntryPoint (0x344): Entry point -- saves global protocol references, reads HOB list, extracts SKU info, installs SKU protocol
  • GetMultiSkuInfoFromHob (0x740): Walks the HOB list to find a GUID-ext HOB with matching Lenovo multi-SKU GUID (3-byte SKU type at HOB offset 48)
  • InstallSkuProtocol (0x470): Publishes the platform SKU identification protocol via gBS->InstallProtocolInterface
  • MsDebugPrint / MsDebugAssert: Debug support via cached MS_DEBUG_PROTOCOL pointer

Protocols/Dependencies

  • MS_DEBUG_PROTOCOL (optional, for debug output)
  • gLenovoMultiSkuHobGuid (for SKU identification data from PEI phase)
  • CMOS RTC (I/O ports 0x70/0x71) for SKU byte at index 0x4B

Platform

Lenovo HR650X. Lenovo-specific multi-SKU identification scheme supporting unified/UEFI SKU detection.