# BmcElog

| Index | Module | Size | Phase |
|-------|--------|------|-------|
| 118 | BmcElog | 8,192 bytes (PE32+) | DXE_RUNTIME_DRIVER |

## Overview

BMC Event Log (SEL) driver that provides read, write, clear, and status operations for the IPMI System Event Log via the BMC. Implements the `BMC_ELOG_REFROTOCOL` for SEL management, handling SEL reservation, entry addition, erase operations, and enable/disable toggling through the IPMI transport protocol.

## Key Functions

- **BmcElogEntryPoint** -- Module initialization, protocol installation
- **BmcElogRead** -- Read SEL entries via IPMI Get SEL Entry commands
- **BmcElogWrite** -- Write entries to SEL via Add SEL Entry
- **BmcElogClear** -- Reserve and erase SEL operations
- **BmcElogSetStatus** -- Enable/disable SEL logging
- **IpmiDetectInterface** -- Detect BMC interface type (KCS/SMBUS/BT)
- **IpmiSendCommand / IpmiGetResponse** -- IPMI transport wrappers
- **OnExitBootServices / OnVirtualAddressChange** -- Runtime event handlers
- **DebugAssert** -- Debug assertion via IPMI transport

## Dependencies

- `gEfiIpmiTransportProtocolGuid` -- IPMI transport protocol
- `gEfiBmcElogProtocolGuid` -- BMC event log protocol
- `gEfiHobListGuid` -- HOB list for startup configuration

## Platform

Intel Purley (Xeon Scalable) with BMC (AST2500). x86-64 UEFI Runtime Driver.