# FpgaPlatformEarlyInit

| Field       | Value                                        |
|-------------|----------------------------------------------|
| Index       | 0370                                         |
| Module      | FpgaPlatformEarlyInit                        |
| PE Size     | 8,768 bytes (0x2240)                         |
| Phase       | PEI (Pre-EFI Initialization)                 |
| Sections    | .text / .rdata / .data / .reloc              |
| Arch        | IA-32 (0x014C)                               |
| SHA256      | 419e20671d52d16d32dc5522bb485b6caf533b1f96eb |

## Overview

FpgaPlatformEarlyInit provides early FPGA (Field Programmable Gate Array) platform initialization during the PEI phase. It discovers FPGA firmware volumes from the flash, locates the FPGA configuration HOB produced by earlier boot stages, and installs the FPGA Platform Hooks PPI for consumption by downstream PEIMs. The module also handles FPGA BBS (Boot Block Select) initialization by loading the FPGA firmware volume into memory.

## Key Functions

- **ModuleEntryPoint** -- Main PEI entry point; initializes the FPGA platform and installs the platform hooks PPI
- **FpgaBbsInit** -- Loads FPGA firmware volume from BIOS flash offset into memory
- **InternalFvAlignmentCheck** -- Validates firmware volume alignment constraints
- **InternalReadCmosByte** -- CMOS read helper for FPGA configuration
- **InternalCalculateCheckSum16** -- Checksum verification for FPGA data integrity

## Dependencies

- MdePkg (BaseMemoryLib, BaseLib, PeiHobLib, PeiPcdLib, PeiServicesLib)
- PurleyPlatPkg/Library/FpgaPlatformHooksLib
- FPGA configuration HOB and variable GUIDs
- gEfiPeiMrcHooksChipServicesPpi, gEfiPeiMpServicesPpi

## Platform

Intel Purley platform, Lenovo HR650X server.