UncoreInitPeim
| Field |
Value |
| Index |
424 |
| Module |
UncoreInitPeim |
| Size |
1,351,076 bytes (PE32 .text: ~1,041 KB / .rdata: ~186 KB / .data: ~74 KB / .reloc: ~18 KB) |
| Phase |
PEI |
| Functions |
2,560 (2,453 named, 107 sub_) |
Overview
UncoreInitPeim is the largest PEI module in the BIOS at ~1.35 MB, responsible for initializing the Intel Purley (Xeon Scalable) uncore -- the on-die logic outside the CPU cores including IIO (Integrated I/O), Ubox, Mesh, and Memory Controller. Spanning 136,806 lines of decompiled C split across 5 part files, it handles PCIe topology enumeration, memory RAS configuration, global MMIO resource allocation, and socket-level uncore register programming.
Key Functions
UncoreInit -- Top-level uncore initialization dispatcher
PcieAddressInit -- PCIe configuration space base address setup
UsraRegisterFilter -- Unified System Register Access filtering for uncore registers
DebugPrintDispatcher -- Debug/log output routing
_ModuleEntryPoint -- PEI module entry; sets up debug services and dispatches sub-phases
Dependencies
- PCIe configuration space (mmcfg)
- PEI Services (PeiServices)
- USRA (Unified System Register Access) library
- Memory controller registers and HOBs
- IIO/Mesh topology descriptors
- Architecture: IA32 (x86, PE32)
- Subsystem: EFI Boot Service Driver (0x000B)
- Machine: 0x014C (i386)
- Entry Point: 0x395