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