# SpsPei

| Index | Module | Size | Phase |
|-------|--------|------|-------|
| 363 | SpsPei | 13.1 KB (13,412 B) | PEI |

## Overview

Server Platform Services (SPS) PEI module. Initializes and manages the Management Engine (ME) during the PEI phase by determining the boot path (S3 vs non-S3), waiting for ME firmware initialization, and negotiating the ME-BIOS interface version. Handles Node Manager (NM) power policies, sends END_OF_POST during S3 resume, configures ICC clocks, and performs pre-DID resets.

## Key Functions

- **SpsPeiEntryPoint**: Main dispatch (detects SPS firmware, reads boot mode)
- **SpsS3Path**: S3 resume path (waits for ME, END_OF_POST, clock config)
- **PpiNotifyHeciReady**: Non-S3 path (HECI ready notification)
- **GetMeSpsPolicy**: SPS policy PPI retrieval
- **Ppi registration for gHeci1PpiGuid and gSpsPolicyPpiGuid**

## Dependencies

- ME Firmware HOB (`gMeFwHobGuid`)
- SPS Info / Policy HOBs (`gSpsInfoHobGuid`, `gSpsPolicyHobGuid`)
- HECI1 PPI (`gHeci1PpiGuid`)
- DebugLib, HobLib, BaseMemoryLib, IoLib, TimerLib, PcdLib

## Platform

- **Arch**: IA32 (PE32)
- **Image Base**: 0xFFDA3630
- **Source**: `e:\hs\PurleySktPkg\Me\Sps\Pei\SpsPei.c`
- **SHA256**: `7d55998a6e8977b296c0fa58200f4e02d0c947e7e8b5f752c08bacb7e39bd48b`
- **Toolchain**: VS2015 DEBUG