# UpdatePcdPei

| Field       | Value                                       |
|-------------|---------------------------------------------|
| Index       | 382                                         |
| Module      | UpdatePcdPei                                |
| Size        | 2208 bytes (0x8A0)                          |
| Phase       | PEI                                         |
| Format      | PE32                                        |
| Machine     | x86 (0x014C)                                |
| Sections    | .text, .rdata, .data, .reloc                |
| Entry Point | 0x315                                       |
| Source      | PurleyPlatPkg/Library/PeiUbaPlatLib         |

## Overview

UpdatePcdPei is a UBA (Universal Board Architecture) PCD update PEIM that locates the UBA PCD Update PPI and invokes board-specific PCD update callbacks during the PEI phase. It reads a PCD_UPDATE_TABLE structure from the UBA protocol data, validates the signature ('PPCD') and version, and calls the board-specific function pointer to apply platform PCD adjustments.

This module enables board-specific PCD customization without modifying the core firmware, allowing a single firmware image to support multiple hardware platforms by dispatching to the correct PCD update routine at boot time.

## Key Functions

- **ModuleEntryPoint** -- Entry point called by the PEI core; delegates to UbaPcdUpdateEntry.
- **UbaPcdUpdateEntry** -- Locates the gUbaPcdUpdatePpiGuid PPI, retrieves the PCD update table, performs validation, and calls the board-specific callback.

## Dependencies

- PeiServicesLocatePpi
- gUbaPcdUpdatePpiGuid protocol
- UBA configuration database PPI
- PCD_UPDATE_TABLE structure (12 bytes, signature 'PPCD', version 1)

## Platform

Intel Purley platform, 32-bit PEI environment.