Module: MrcOemHooksPeim.efi (index 0372)
Hash: ec5c461bc56ce7ac930e64fcb6aea6e956b9a6985d0434fae2ef7c066cfc4f64
Source Path: HR650X_3647_AJAX_BIOS_ORIGINAL.pe_structured/pe_files/0372_MrcOemHooksPeim_ec5c461bc56c
Architecture: IA32 (32-bit)
Base Address: 0xffdb79f4
Image Size: 0x182e0 (99,040 bytes)
This module is compiled from the following source paths:
PurleyPlatPkg\Platform\Pei\MrcOemHooksPeim\MrcOemHooksPeim.cPurleyPlatPkg\Library\OemProcMemInitLib\OemProcMemInit.cPurleyPlatPkg\Library\OemProcMemInitLib\EdkProcMemInit.cPurleyPlatPkg\Library\OemIioInit\OemIioInitPei.cThe core function OemProcessMrcResult() handles MRC initialization results:
OemInitSysHostMem() allocates system host memory via AllocSysHostMemory()ConfigSysHostMem() configures system host memory controller registersOemConfigDdrMem() performs DDR memory training and configurationOemInstallEfiMemory() installs EFI memory map after MRCConfiguration of IIO (Integrated I/O) ports via:
OemGetIioPortBifurcation() - queries and applies bifurcation settingsSetIioPortBifurcation() - writes the actual register valuesGetIioPortBifurcationCfg() - looks up configuration per socket/channelSetIioPortBifurcationInit() - initializes the DQ/DQS pin mappingInitMemConfigData() - sets up all memory config data structuresConfigPcieTopology() - enumerates and configures PCIe topologyGetPciExpressBar() - obtains PCIe configuration base addressPciReadConfig32() / PciWriteConfig32() - PCI config space accessThe module provides a callback/hook dispatch framework:
RegisterOemCallbacks() - registers platform-specific callbacksOemHookDispatch2Arg() / OemHookDispatch3Arg() / OemHookDispatch4Arg() / OemHookDispatch7Arg() - dispatchersDispatchMemInitHooks() - dispatches memory init hooksCollectOemCallbacks() - collects all callbacks from tablesOemGetIioSoftSkuInfo() - reads SocketLicense0/SocketCapability0/ForceProvisioning NVRAM variablesOemTpmSaveState() - runs TPM1.2 or TPM2.0 save state on reset/suspendTpm2SaveStateRun() / Tpm12SaveStateRun() - actual TPM commandsMeSendHostResetWarning() - notifies ME before system resetPeiServicesInstallPpi() for PPI installationOemSaveMemNvram() - saves memory training data via decompressionOemLoadSetupData() - loads setup configuration (IntelSetup variable)ApplySetupDataToConfig() - applies setup data to memory configCheckBoardVsCpuConflict() - detects board vs CPU incompatible configurationGetPchStepping() - reads PCH steppingGetIioCpuPackageType() - identifies CPU package typeDebugPrint() / DbgPrintMemInit() - platform debug output with severity levelsIsDebugEnabled() / IsDebugLevelEnabled() - debug enablement checksAssertEfiError() - EFI_STATUS check macro| Address | Name | Size | Purpose |
|---|---|---|---|
| 0xffdcef68 | unk_FFDCEF68 | - | PPI descriptor table for module |
| 0xffdcef08 | unk_FFDCEF08 | GUID | gEfiPeiReadOnlyVariable2PpiGuid |
| 0xffdceed8 | unk_FFDCEED8 | GUID | Reset PPI GUID |
| 0xffdceea8 | unk_FFDCEEA8 | GUID | OPA Socket Map HOB GUID |
| 0xffdcec98 | unk_FFDCEC98 | GUID | Variable services PPI GUID |
| 0xffdced38 | unk_FFDCED38 | GUID | MeUma PPI GUID |
| 0xffdced68 | unk_FFDCED68 | GUID | Compress data HOB GUID |
| 0xffdcee58 | unk_FFDCEE58 | GUID | IntelSetup variable GUID |
| 0xffdcf508 | dword_FFDCF508 | 0x10 | 4-arg callback pointer table |
| 0xffdcf518 | dword_FFDCF518 | 0x10 | 2-arg callback pointer table |
| 0xffdcf4fc | dword_FFDCF4FC | 0x10 | 3-arg callback pointer table |
| 0xffdcf500 | dword_FFDCF500 | 0x10 | 7-arg callback pointer table (Set) |
| 0xffdcf51c | dword_FFDCF51C | 0x10 | 7-arg callback pointer table (B) |
Total named: 103 | Total unnamed remaining: 98 (mostly leaf helpers, small utilities)
OemInitSysHostMem, ConfigSysHostMem, ConfigPcieTopology, OemConfigDdrMem,
OemProcessMrcResult, OemInstallEfiMemory, OemSaveMemNvram, OemLoadSetupData,
OemFinalizeMemInit, OemIssueReset, OemGetIioProcMemInit, InstallEfiMemMap,
CheckNvramSanity, CheckNvramCrcSanity, InitMemDefaults, InitMemConfigData,
InitMemCtrlConfig, CalcDimmIndex, ReadDimmSpdData
OemGetIioPortBifurcation, SetIioPortBifurcation, SetIioPortBifurcationInit,
GetIioPortBifurcationCfg, GetIioCpuPackageType, ConfigPcieTopology,
GetPciExpressBar, GetPciCfgBaseAddr, PciReadConfig32, PciWriteConfig32,
AllocSysHostMemory, IsIioInitRequired
RegisterOemCallbacks, CollectOemCallbacks, OemHookDispatch2Arg,
OemHookDispatch3Arg, OemHookDispatch3Arg_1, OemHookDispatch4Arg,
OemHookDispatch7Arg, OemHookDispatch7ArgB, DispatchMemInitHooks,
DispatchMemInitHooksCore
DebugPrint, IsDebugEnabled, IsDebugLevelEnabled, DbgPrintMemInit,
DbgPrintFormatted, DebugPrintBoardConflict, SetErrorStatus
OemTpmSaveState, Tpm12SaveStateInit, Tpm12SaveStateRun, Tpm2SaveStateRun
MeSendHostResetWarning
OemGetIioSoftSkuInfo, GetFullSpeedEparamEntry, SetDefaultTimeout,
ParseNvramVarData, ValidateVarData, GetPchStepping
GetDebugInstance, AssertEfiError, GetBootMode, RegisterPeiNotifyCallback,
GetGuidHobData, SetupMrcHobs, PublishGuidHob, PublishOpaSocketMapHob,
GetPeiServicesPtr, SetStructPairs, Memset32Wrapper, NullCallback,
PeiInstallPpi, CalculateCrc16, GetFvFileInfo