3.2 Firmware Volumes

The Stage I functionality is contained in these Firmware Volumes with these attributes.

Name

Content

Compressed

Parent FV

FvPreMemory

SEC + StatusCode

No

None

FvBspPreMemory

Pre-memory board initialization

No

None

FvFspT

SEC silicon initialization

No

None

FvFspM

Memory initialization

No

None

FvPreMemorySilicon

Pre-memory silicon initialization

No

FvFspM

FvFspS

Silicon initialization

No

None

FvPostMemorySilicon

Post-memory silicon initialization

Yes

FvFspS

Table 5 Stage I Firmware Volumes

As the foundational stage for further functionality, Stage I may include additional content beyond what is strictly required to meet the stage objective. Typically this will include silicon initialization code that may be packaged in a variety of mechanisms including varying size binary blobs. In the layout shown in Table 5, the Intel® FSP solution is shown as an example. In this case, the FSP binary can be rebased and integrated in one step rather than distributing the work for the FSP-M and FSP-S rebase unnecessarily across later stages. Note that a child FV is a FV embedded within the parent FV. The child FV is identified by a file type of EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE.

Combining the FVs with full set of silicon binary components yields this example flash map for MMIO storage:

Binary

FV

Components

Purpose

Stage I

FvPreMemory.fv

SecCore.efi

Reset Vector

Passes PEI core the address of FvFspM

Passes PEI core the debug configuration

ReportFvPei.efi

Installs firmware volumes

SiliconPolicyPeiPreMemory.efi

Publishes silicon initialization configuration

PlatformInitPreMemory.efi

Performs pre memory initialization

Additional Components

Additional pre-memory components required for Stage I boot

FvBspPreMemory.fv

Additional Components

Advanced pre-memory board support components

FvFspT.fv

PlatformSec.efi

Initializes T-RAM silicon functionality

Tests T-RAM functionality

Additional Components

FvFspM.fv

PeiCore.efi

PEI services and dispatcher

PcdPeim.efi

PCD service

FspPlatform.efi

Converts UPD to Policy PPI

FvPreMemorySilicon.fv

(child FV)

Additional Components

Pre-memory silicon initialization components

ReportStatusCodeRouterPei.efi

Provide status code infrastructure

StatusCodeHandlerPei.efi

Provide status code listeners

Additional Components

FvFspS.fv

FvPostMemorySilicon.fv

(child FV)

Additional Components

Post-memory silicon initialization components

Additional components

Table 6 Stage I FV and Component Layout

Note that many of the components included above do not actually participate in producing Stage I functionality, and will not be executed when the boot stage target is set to Stage I. For systems that use non-volatile storage technology that does not provide memory map capabilities, this layout may be modified where necessary. However, the firmware execution path must remain scoped to only perform actions required to achieve the boot stage objective.

See Appendix: Full FV Map for a more complete example Firmware Volume layout.