# SystemBoardPpi

| Field       | Value                                        |
|-------------|----------------------------------------------|
| Index       | 0379                                         |
| Module      | SystemBoardPpi                               |
| PE Size     | 40,224 bytes (0x9D20)                        |
| Phase       | PEI (Pre-EFI Initialization)                 |
| Sections    | .text / .rdata / .data / .reloc              |
| Arch        | IA-32 (0x014C)                               |
| SHA256      | 8c96e3adac00618b1019f7d6cf0ac023bde5ed21198c7 |

## Overview

SystemBoardPpi is the PEI system board management driver for the Intel Purley platform. It detects board type and backplane personalities via GPIO, configures PCIe riser card slots including hot-plug support, programs clock generators over SMBUS, and detects the PCH SKU. The module also manages IOU (IIO Global Data) configuration for PCIe bifurcation and slot mapping.

## Key Functions

- **ModuleEntryPoint** -- Main entry point; calls SystemBoardInit and locates the IIO configuration PPI
- **SystemBoardInit** -- Top-level board initialization dispatcher
- **DetectBoardType** -- Reads GPIO to determine motherboard personality
- **DetectBPType** -- Detects backplane type and personality
- **ConfigureRiserSlot** -- Programs riser card slot configuration
- **IioGpioRiserConfig** -- GPIO-based riser presence detection and IIO routing
- **GetPchSku** -- Reads PCH SKU identification registers
- **ConfigureHotPlugSlot** -- Enables PCIe hot-plug on designated slots

## Dependencies

- MdePkg (PiPei.h, BaseLib)
- PEI Services (PPI location, I/O access)
- GPIO, SMBUS, PCI Express MMIO access
- IIO configuration PPI

## Platform

Intel Purley platform (e:\hs\PurleyRpPkg\SystemBoard\Pei), Lenovo HR650X server.