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 |
|
ReportFvPei.efi |
|
||
SiliconPolicyPeiPreMemory.efi |
|
||
PlatformInitPreMemory.efi |
|
||
Additional Components |
|
||
FvBspPreMemory.fv | Additional Components |
|
|
FvFspT.fv | PlatformSec.efi |
|
|
|
|||
Additional Components | |||
FvFspM.fv | PeiCore.efi |
|
|
PcdPeim.efi |
|
||
FspPlatform.efi |
|
||
FvPreMemorySilicon.fv | |||
(child FV) | |||
Additional Components |
|
||
ReportStatusCodeRouterPei.efi |
|
||
StatusCodeHandlerPei.efi |
|
||
Additional Components | |||
FvFspS.fv | FvPostMemorySilicon.fv | ||
(child FV) | |||
Additional 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.