A.2 Key Function Invocation
| Name | Purpose | 
|---|---|
| ResetHandler (*) | The reset vector invoked by silicon | 
| TempRamInit | Silicon initializes temporary memory | 
| TestPointTempMemoryFunction | Test temporary memory functionality | 
| SecStartup (*) | First C code execution, constructs PEI input | 
| TestPointEndOfSec | Verify state before switching to PEI | 
| PeiCore (*) | PEI entry point | 
| PeiDispatcher (*) | Calls the entry points of PEIM | 
| ReportPreMemFv | Installs firmware volumes required in pre-memory | 
| BoardDetect | Board detection of the motherboard type | 
| BoardDebugInit | Board specific initialization for debug device | 
| PlatformHookSerialPortInitialize | Board serial port initialization. Called from SEC or PEI | 
| TestPointDebugInitDone | Verify debug functionality | 
| BoardBootModeDetect | Board hook for EFI_BOOT_MODE detection | 
| BoardInitBeforeMemoryInit | Board specific initialization, e.g. GPIO | 
| SiliconPolicyInitPreMemory | Silicon pre memory policy initialization | 
| SiliconPolicyUpdatePreMemory | Board updates silicon policies | 
| SiliconPolicyDonePreMemory | Complete pre memory silicon policy data collection | 
| MemoryInit | Silicon initializes permanent memory | 
| InstallEfiMemory | Install permantent memory to core | 
| PeiCore (*) | PEI entry point (post memory entry) | 
| SecTemporaryRamDone (*) | Call SEC to tear down temporary memory | 
| ReportPostMemFv | Installs firmware volumes required in post-memory | 
| TestPointPostMemoryFvInfoFunctional | Test for Firmware Volume map | 
| BoardInitAfterMemoryInit | Board initialization after memory is installed | 
| SetCacheMtrr | Configure cache map for permanent memory | 
| TestPointPostMemoryMtrrAfterMemoryDiscoveredFunctional | Test post-memory cache map | 
| TestPointPostMemoryResourceFunctional | Test resources | 
| TestPointPostMemoryFvInfoFunctional | Test for Firmware Volume map | 
| BoardInitBeforeSiliconInit | Board initialization hook | 
| SiliconPolicyInitPostMemory | Silicon post memory policy initialization | 
| SiliconPolicyUpdatePostMemory | Board updates silicon policies | 
| SiliconPolicyDonePostMemory | Complete post memory silicon policy data collection | 
| BoardInitAfterSiliconInit | Board specific initialization after silicon is initialized | 
| DxeLoadCore (*) | DXE IPL locate and call DXE Core | 
| SetCacheMtrrAfterEndOfPei | Sets cache map in preparation for DXE | 
| TestPointEndOfPei | Verify expected state as we exit PEI phase | 
| TestPointPostMemoryMtrrEndOfPeiFunctional | Basic test for cache configuration before entering DXE | 
| PeimEntryMA (*) | Entrypoint for TPM2 PEIM | 
| IntelVTdPmrInitialize (*) | Entrypoint for VT-d PEIM | 
| DxeMain (*) | DXE entry point | 
| CoreStartImage (*) | Calls the entry points of DXE drivers | 
| SiliconPolicyInitLate | Silicon late policy initialization | 
| SiliconPolicyUpdateLate | Board updates silicon policies | 
| SiliconPolicyDoneLate | Complete late silicon policy data collection | 
| CoreAllEfiServicesAvailable (*) | Check if required architectural protocols are installed | 
| SmmIplEntry (*) | SMM IPL | 
| SmmMain (*) | SMM Core entrypoint | 
| PiCpuSmmEntry (*) | SMM CPU driver | 
| SmmRelocateBases (*) | Relocation | 
| _SmiEntryPoint (*) | SMI entry point | 
| SmmEntryPoint (*) | Dispatch SMI handlers | 
| PchSmmCoreDispatcher | Dispatch PCH child SMI handlers | 
| InitializeTcgSmm (*) | Entrypoint for TPM2 SMM | 
| MemoryClearCallback (*) | Callback function for MOR setting | 
| PlatformCreateAcpiTable | Create the minimum set of platform specific tables | 
| PlatformUpdateAcpiTable | Update platform specific data in ACPI tables - FADT. | 
| PlatformInstallAcpiTable | Install platform specific ACPI tables | 
| DriverEntry (*) | Entrypoint for TPM2 DXE | 
| IntelVTdInitialize(*) | Entrypoint for VT-d DXE | 
| UserPhysicalPresent (*) | Return if physical user is present for UEFI secure boot | 
| ProcessTcgPp | Process TPM PP request | 
| ProcessTcgMor | Process TPM MOR request | 
| BdsEntry (*) | BDS entry point | 
| PlatformBootManagerBeforeConsole (*) | Platform specific BDS functionality before console | 
| BoardInitAfterPciEnumeration | Board-specific hook on PCI enumeration completion | 
| TestPointPciEnumerationDone | Verify PCI | 
| ExitPmAuth | Signal key security events EndOfDxe and SmmReadyToLock | 
| TestPointEndOfDxe | Verify expected state after EndOfDxe | 
| TestPointDxeSmmReadyToLock | Verify expected state after SmmReadyToLock | 
| TestPointSmmEndOfDxe | Verify state after SmmEndOfDxe | 
| TestPointSmmEndOfDxe | Verify state after SmmEndOfDxe | 
| TestPointSmmReadyToLock | Verify state after SmmReadyToLock | 
| EfiBootManagerDispatchDeferredImages (*) | Dispatch deferred third party UEFI driver OPROMs | 
| PlatformBootManagerAfterConsole (*) | Platform specific BDS functionality after console | 
| BootBootOptions (*) | Attempt each boot option | 
| EfiSignalEventReadyToBoot (*) | Signals the ReadyToBoot event group | 
| BoardInitReadyToBoot | Board hook on ReadyToBoot event | 
| TestPointReadyToBoot | Verify state after ReadyToBoot event signal | 
| UefiMain (*) | UEFI Shell entry point | 
| CoreExitBootServices (*) | Dismantles UEFI boot services and enters runtime | 
| BoardInitEndOfFirmware | Board hook for ExitBootServices event | 
| TestPointExitBootServices | Verify state after ExitBootServices has been called | 
| RuntimeDriverSetVirtualAddressMap (*) | Set virtual address mode | 
| PlatformEnableAcpiCallback | Switch the system to ACPI mode | 
| BoardEnableAcpiCallback | Board hook for ACPI mode switch | 
Table 72 Key Function Invocation
* In the common EDK II open source code.