This is the Intel Purley/Skylake-SP Uncore and Memory Controller initialization PEIM executing during the PEI phase of UEFI boot. It initializes the CPU's uncore subsystem including the memory controller (MC), IIO (Integrated I/O), KTI (Keizer Technology Interconnect — Intel's UPI), PCIe root complexes, DDR4/DDRT memory training, and SMBus mailbox communication with the PCODE microcontroller.
Key functional domains:
_ModuleEntryPoint (0xffc1e919): PEI module entry pointUncoreInitEntry (0xffc28e01): Entry dispatcherUncoreInitMain (0xffc29939): Main initialization orchestrator (4a6 bytes)ProcMemInitMain (0xffc52c8e): Memory initialization main (1493 bytes)Ddr4TrainingMain (0xffc6bda9): Main DDR4 training routineMemTestScramTest (0xffc212cf): Memory test scramble patternDataCmdCtlTrain (0xffc30f68): Command/control bus trainingReadDqDqsCleanup (0xffc32d95): DQ/DQS read path cleanupDdrTimingTraining (0xffc6f77b): DDR timing trainingDimmSpdTimingInit (0xffc79494): SPD-based timing initializationDimmConfigPerSocket (0xffc2a729): Per-socket DIMM configurationDimmCommTest (0xffc3e8f5): DIMM communication testDdr4DdrtMixedConfig (0xffc6f323): DDR4/DRT mixed config handlingDdr4SkuCheck (0xffc7fdf5): DDR4 SKU validationWriteLevelingPushPull (0xffc7f2f6): Write leveling calibrationMemAdvTestFailureCheck (0xffc270b2): Advanced test failure analysisIOTrainingCtlCmdCkeClk (0xffc7bcff): IO training CMD/CKE/CLK controlDdr4RcdInit (0xffc7d4db): RCD (Registering Clock Driver) initNgnDimmThermalThrottle (0xffc6cf67): Next-gen DIMM thermal throttlingNgnDimmPmonInit (0xffc6ebba): Power monitoring initNgnDimmCmdControl (0xffc6edc3): Command control for NVDIMMNgnDimmThermalUpdate (0xffc6ef73): Thermal update for NVDIMMDimmPartitionDdrt (0xffc8b828): DDRT partition configurationDimmInterleaveConfig (0xffc83e2f): DIMM interleave configurationDimmReadLinkMcaData (0xffc95ccb): Read link MCA (Machine Check) dataDimmSpareRankConfig (0xffc97a43): Spare rank configurationDimmSetSpareMode (0xffc97e26): Spare mode settingDimmExecuteSmartPpr (0xffc9c097): Smart Post-Package Repair executionDdrtConfigValidation (0xffc77b62): DDRT config validationDdrCheckVmseErrLatency (0xffc7765a): VMSE error latency checkMemInitWrapper (0xffc301d1): Memory initialization wrapperProcMemInitSetup (0xffc329e1): Memory init setupProcMemInitCommon (0xffc40cab): Common memory init routineMemInitiateSktUpdate (0xffc43fa2): Per-socket memory updateMemInitChipMain (0xffc814a2): Chip-specific memory initMemCpgcMain (0xffc7e5a9): CPGC (Channel Power Gating Calibration) mainCpgcChannelInit (0xffc5e7f8): Per-channel CPGC initCpgcSktInit (0xffc6410c): Per-socket CPGC initMrcHooksChipServices (0xffc4ee0a): MRC hook chip servicesMrcMarginGroupTrain (0xffc4e1c5): Margin group trainingMrcPpibControl (0xffc28f7b): PPIB (Parallel Peripheral Interface Bus) controlPostMrcInitConfig (0xffca6b89): Post-MRC configurationMemCmdControlSetup (0xffc8dcee): Memory command control setupPcieAddressInit (0xffc1f9ae): PCIe address initializationPcieAddressEarlyInit (0xffc65886): Early PCIe address initPcieEarlyInit (0xffc28eaa): Early PCIe initializationPciAccessInit (0xffc576da): PCI access initializationPciCfgRead (0xffc2abce): PCI config read wrapperPciCfgWrite (0xffc2ad08): PCI config write wrapperIioEarlyLinkInit (0xffc2dfad): IIO early link initializationIioResetCheck (0xffca6a76): IIO reset state checkKtiInitMain (0xffc2b95c): KTI initialization mainKtiSelectFreq (0xffc680ee): KTI frequency selectionKtiLibSocketCheck (0xffc3628d): Socket presence checkKtiLibAssertCheck (0xffc36b45): KTI assert/error checkKtiMainSocketCheck (0xffc43a80): Main socket validationKtiMainCheckMaxSocket (0xffc474e9): Max socket count checkKtiMainCheckTotalCpu (0xffc47a8a): Total CPU count checkKtiSetRasConfig (0xffc97461): RAS configuration for KTIKtiEvAutoRecipeMain (0xffc9613a): Auto recipe trainingKtiLinksMain (0xffc9908e): KTI link managementKtiCohMain (0xffc9e6a6): KTI coherence setupKtiDiscoveryFunc0606 (0xffca0606): KTI discovery / enumerationKtiDebugAssert (0xffc391bb): KTI debug assertKtiDebugPrint (0xffc391e2): KTI debug printMailBoxPcodeComm (0xffc42cd1): PCODE mailbox communication (9c2 bytes)MailBoxPcodeCmd (0xffc5de32): PCODE mailbox commandMailBoxSendRecv (0xffc5a7f5): Mailbox send/receive (b09 bytes)SmbusInit (0xffc50d60): SMBus controller initSmbusReadBlock (0xffc5e13a): SMBus block readCpuCfgEarlySetup (0xffc2afce): Early CPU configurationCpuFeatureEarlyConfig (0xffc2beae): Early CPU feature configCpuIssActiveCoreCheck (0xffc2c9da): ISS active core checkCpuIoRead (0xffc2af4f): CPU IO readCpuIoCfgWrite (0xffc2af92): CPU IO config writeCpuInitB0CA (0xffc3b0ca): CPU initializationGetSocketNumber (0xffc2aec8): Socket number querySkuInitPrepare (0xffc28f46): SKU init preparationSkuingDataInit (0xffca7653): SKU data initializationNetInit (0xffc63295): MRC network initIpInit (0xffc69649): MRC IP initCheckAndDispatch (0xffca7738): Event check and dispatchAssert / Assert_0 / Assert_1 (0xffc67e26, 0xffc69a2a, 0xffc6accd): Assertion handlersSetMem (0xffca7a86): Memory set helperCheckPpiAvailable (0xffca7673): PEIM-to-PEIM Interface (PPI) availability checkInitializeDefaultData (0xffc2928b): Default data initInitializePlatformData (0xffc297a5): Platform data initPlatformDataEarlyInit (0xffca7838): Early platform dataPlatformPostInit (0xffca76f8): Platform post-initPlatformFinalInit (0xffca79c5): Platform final initPlatformDataLateInit (0xffca7aeb): Late platform data initCollectPrevBootFatalErrors (0xffc29ddf): Previous boot error collectionCheckResetRequest (0xffc2b06a): Reset request checkPipeInitMain / PipeExitMain (0xffc2b24b / 0xffc2b18c): Pipe init/exitMiscConfigCheck (0xffc58d42): Miscellaneous config checkMiscIoCheck (0xffc58f0b): Miscellaneous IO checkRcAssertPrint (0xffca7715): RC assert printProcMemInitCheck (0xffc2a26a): Memory init checkUsraRegisterFilter (0xffc1ec31): USRA register filter (d5e bytes)PCIe address mapping table used by PcieAddressInit and PcieAddressEarlyInit for configuring PCIe bus address routing on the Purley platform.
This module targets the Intel Purley platform (Skylake-SP Xeon Scalable) based on: