# OemPlatformEarlyPhasePei

| Field       | Value                                           |
|-------------|-------------------------------------------------|
| Index       | 423                                             |
| Module      | OemPlatformEarlyPhasePei                        |
| Size        | 2,596 bytes (PE32 .text: 879 / .rdata: 960 / .data: 33 / .reloc: 40) |
| Phase       | PEI                                             |
| Functions   | ~7                                              |

## Overview

OemPlatformEarlyPhasePei handles early Lenovo platform initialization during PEI, focusing on CMOS-based UART baud rate configuration. It reads the baud rate from CMOS, synchronizes it with Setup variables, and triggers a warm reset if a mismatch is detected. The module also provides low-level IDT/PEI services table pointer retrieval used by other early-phase routines.

## Key Functions

- `ReadIdtr` -- Reads the IDT register for PEI services table pointer extraction
- `GetPeiServicesTablePtr` -- Retrieves the PEI Services Table via IDT
- `ModuleEntryPoint` -- Main entry: performs CMOS baud rate sync and reset logic
- `BaudRateCheck` -- Compares CMOS baud rate to Setup variable; triggers warm reset on mismatch

## Dependencies

- CMOS RTC (ports 0x70/0x71)
- IDT/SIDT instruction
- PEI Services
- UART/I/O Library (IoLib)

## Platform

- **Architecture**: IA32 (x86, PE32)
- **Subsystem**: EFI Boot Service Driver (0x000B)
- **Machine**: 0x014C (i386)
- **Entry Point**: 0x315