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

PeiIpmiBmcInitialize

Index Module Size Phase
0411 PeiIpmiBmcInitialize.efi 0x27E0 (10208 bytes) PEI

Overview

This module provides early IPMI (Intelligent Platform Management Interface) BMC (Baseboard Management Controller) initialization during the PEI phase. It implements the KCS (Keyboard Controller Style) IPMI transport layer for BMC communication, performs BMC discovery and interface detection, configures PCH LPC cycle decoding for IPMI I/O ranges, detects power failure status, and identifies the PCH SKU (Lewisburg vs. Sunrise Point). It installs a status code reporting PPI for debug output.

Key Functions

  • GetReportStatusCode -- Locates and returns the ReportStatusCode PPI
  • ReportStatusCode -- Debug output via status code PPI with varargs
  • DebugAssert -- Assert handler for debug builds
  • InternalCopyMem -- Portable memory copy with overlap handling
  • BMC KCS transport: send/receive IPMI commands via KCS interface
  • PCH decode range programming for IPMI I/O port enablement

Dependencies

  • PeiIpmiBmcInitialize.h (module header)
  • PEI Services (GetPeiServices / LocatePpi / InstallPpi)
  • PCH LPC register definitions
  • IPMI/KCS protocol specifications

Platform

  • Architecture: IA32 (32-bit)
  • Machine type: x86 (0x014C)
  • Subsystem: EFI Boot Service Driver (0x000B)
  • Format: PE32
  • Image base: 0xFFE5B334
  • Sections: .text, .rdata, .data, .reloc