# LnvPurleyDriverPei
**Index:** 0403 | **Size:** 2,400 bytes | **Phase:** PEI | **Format:** PE32 (Ia32)

## Overview
Minimal Lenovo Purley-specific PEI driver that registers PPI notification descriptors and provides debug output infrastructure. Installs the LnvPurley driver PPI, registers notification callbacks, and exposes a debug PPI interface for platform-level debug logging during PEI.

## Key Functions
- **ModuleEntryPoint** -- EFI entry: registers LnvPurleyInstallPpiDescriptor and notification PPIs, logs status
- **PpiNotifyCallbackStub** -- Stub callback that returns immediately (0)
- **GetDebugPpiInterface** -- Locates the LnvPurley debug PPI via PeiServices
- **DebugPrint** -- Conditional debug print via debug PPI, filtered by PeiGetPlatformType
- **DebugAssert** -- Assert handler via debug PPI
- **PeiGetPlatformType** -- Reads platform type from RTC CMOS register 0x4A
- **GetPeiServicesTablePointer** -- Retrieves PEI services pointer via SIDT
- **LnvSendIpmiCmd** -- Sends IPMI command using the Purley driver PPI

## Dependencies
- gLnvPurleyDriverPpiGuid -- LnvPurley driver PPI GUID
- gLnvPurleyDebugPpiGuid -- LnvPurley debug PPI GUID
- PeiServices Table Pointer via IDT
- CMOS RTC register 0x4A -- Platform type detection

## Platform
Intel Purley (Skylake-SP Xeon), HR650X
Source: LenovoServerPkg/Library/LnvIpmiLib/IpmiCmd/