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.