# PeiSelStatusCode

| Index | Module | Size | Phase |
|-------|--------|------|-------|
| 0412 | PeiSelStatusCode.efi | 0x1360 (4960 bytes) | PEI |

## Overview

This PEIM translates UEFI status codes into IPMI SEL (System Event Log) entries during the PEI phase. It installs a status code PPI notification handler that intercepts progress/error events and writes corresponding SEL records via the IPMI BMC interface. It includes a data type lookup table that maps status code progress/error identifiers to SEL event data, manages a linked list of pending SEL entries, and writes them to the BMC through direct IPMI command buffers.

## Key Functions

- `PeiSelStatusCodeEntryPoint` -- Module entry point, validates PEI revision
- `PeiSelStatusCodeInitEndpoint` -- Locates IPMI PPI and installs status code notification
- `PeiSelStatusCodeNotify` -- Notification callback that records status codes to SEL
- `PeiSelLookupDataType` -- Maps status code type/value pairs to SEL event data
- `InternalMemCopy` / `InternalMemSet` / `SetMem` -- Memory utility functions

## Dependencies

- PeiSelStatusCode.h (module header)
- IPMI PPI for BMC SEL transport
- PEI Services (LocatePpi / InstallPpi / NotifyPpi)
- edk2 BaseMemoryLib

## Platform

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