5.4 Required Functions

The following functions are required to exist and to execute in the listed order. The component that provides the function is not specified because it is not required by the architecture.

5.4.1 Required PEI functions

Name Purpose
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
Table 31 Stage III Required PEI Functions

* In the common EDK II open source code.

5.4.2 PEI Interfaces

Component Name Consumer Purpose
BoardInitLib BoardInitBeforeSiliconInit Platform Board specific initialization before silicon initialization
BoardInitAfterSiliconInit Platform Board specific initialization after silicon initialization
SiliconPolicyInitLib SiliconPolicyInitPostMemory Platform Silicon provides default policy
SiliconPolicyDonePostMemory Platform Platform to indicate the policy update is done
SiliconGetPolicySubData Board Return policy data for update.
SiliconPolicyUpdateLib SiliconPolicyUpdatePostMemory Platform Board updates default policy
Table 32 Stage III PEI Functions

5.4.3 Required DXE functions

Name Purpose
DxeMain (*) DXE entry point
CoreStartImage (*) DXE driver entry point
SiliconPolicyInitLate Silicon policy late (DXE) initialization
SiliconPolicyUpdateLate Silicon policy late (DXE) update from the board package
SiliconPolicyDoneLate Silicon policy late (DXE) indication policy initialization is done
CoreAllEfiServicesAvailable (*) Verify all architectural protocols are installed
BdsEntry (*) BDS entry point
PlatformBootManagerBeforeConsole (*) Platform-specific BDS functionality before console
BoardInitAfterPciEnumeration Board-specific hook after PCI enumeration completion
TestPointPciEnumerationDone Test to verify PCI enumeration assignment
ExitPmAuth Signal key security events EndOfDxe and SmmReadyToLock
TestPointEndOfDxe Test to verify expected state after EndOfDxe
TestPointDxeSmmReadyToLock Test to verify expected 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 Test to verify expected state after ReadyToBoot event signal
UefiMain (*) UEFI Shell entry point
Table 33 Stage III DXE Functions

5.4.4 DXE Interfaces

Component Name Consumer Purpose
BoardInitLib BoardNotificationInit Platform Board specific initialization hook at DXE phase
Table 34 Stage III DXE Interfaces