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