# PciDxeInit

| Field  | Value |
|--------|-------|
| Index  | 295 |
| Module | PciDxeInit |
| Size   | 65792 bytes (0x10100) |
| Phase  | DXE |

PCI DXE initialization driver for the AMI ModulePkg / Lenovo HR650X platform (Purley/Intel grantley-EP). This driver installs the AmiPciBusSetupOverride protocol with device-specific hooks, manages the PCI bus override table (per-device config callbacks), handles VGA device enumeration and selection (onboard vs offboard), manages S3 boot script save/restore via SmmLockBox, provides RAID driver binding for onboard SATA/AHCI controllers, restricts MMIO resources (e.g., USB under 4GB), and performs port degradation for 10GbE BAR.

## Key Functions

- **PciDxeInitEntryPoint** -- UEFI entry point
- **PciDxeInitDriverInit** -- Protocol registration and event notification setup
- **GetCurrentDebugLevel** -- Debug level retrieval from CMOS/DebugMask
- **AmiPciBusSetupOverrideInstall** -- Installs per-device PCI config override callbacks
- **VgaDevicePolicy** -- Onboard vs offboard VGA selection logic
- **S3BootScriptSave** -- S3 resume boot script preservation via SmmLockBox

## Dependencies

- UefiBootServicesTableLib, UefiRuntimeServicesTableLib
- DebugLib, BaseLib, HobLib
- AmiPciBusSetupOverride Protocol, SmmLockBox, PCD Protocol

## Platform

x86-64 PE32+ (UEFI DXE driver), Lenovo HR650X (Purley/Intel grantley-EP), AMI ModulePkg