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