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.