EFI FV FILETYPE

From PhoenixWiki

Jump to: navigation, search

Prototype

typedef UINT8 EFI_FV_FILETYPE;
#define EFI_FV_FILETYPE_RAW                   0x01
#define EFI_FV_FILETYPE_FREEFORM              0x02
#define EFI_FV_FILETYPE_SECURITY_CORE         0x03
#define EFI_FV_FILETYPE_PEI_CORE              0x04
#define EFI_FV_FILETYPE_DXE_CORE              0x05
#define EFI_FV_FILETYPE_PEIM                  0x06
#define EFI_FV_FILETYPE_DRIVER                0x07
#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER  0x08
#define EFI_FV_FILETYPE_APPLICATION           0x09
#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0b
#define EFI_FV_FILETYPE_FFS_PAD               0xf0


Description

File Type Description
EFI_FV_FILETYPE_RAW The file type EFI_FV_FILETYPE_RAW denotes a file that does not contain sections and is treated as a raw data file. The consumer of this type of file must have a priori knowledge of its format and content. Because there are no sections, there are no construction rules.
EFI_FV_FILETYPE_FREEFORM The file type EFI_FV_FILETYPE_FREEFORM denotes a sectioned file that may contain any combination of encapsulation and leaf sections. While the section layout can be parsed, the consumer of this type of file must have a priori knowledge of how it is to be used.

A single EFI_SECTION_FREEFORM_SUBTYPE_GUID section may be included in a file of type EFI_FV_FILETYPE_FREEFORM to provide additional file type differentiation. While it is permissible to omit the EFI_SECTION_FREEFORM_SUBTYPE_GUID section entirely, there must never be more than one instance of it.

EFI_FV_FILETYPE_SECURITY_CORE The file type EFI_FV_FILETYPE_SECURITY_CORE denotes code and data that comprise the first part of PI Architecture firmware to execute. Its format is undefined with respect to the PI Architecture, as differing platform architectures may have varied requirements.
EFI_FV_FILETYPE_PEI_CORE The file type EFI_FV_FILETYPE_PEI_CORE denotes the PEI Foundation file. This image is entered upon completion of the SEC phase of a PI Architecture-compliant boot cycle. This file type is a sectioned file that must be constructed in accordance with the following rules:

As long as the above rules are followed, the file may contain other leaf and encapsulations as required/enabled by the platform design.

EFI_FV_FILETYPE_DXE_CORE The file type EFI_FV_FILETYPE_DXE_CORE denotes the DXE Foundation file. This image is the one entered upon completion of the PEI phase of a UEFI boot cycle. This file type is a sectioned file that must be constructed in accordance with the following rules:
  • The file must contain at one and only one executable section, which must have a type of EFI_SECTION_PE32.

• The file must contain no more than one EFI_SECTION_VERSION section.

The sections that are described in the rules above may be optionally encapsulated in compression and/or additional GUIDed sections as required by the platform design. As long as the above rules are followed, the file may contain other leaf and encapsulation sections as required or enabled by the platform design.

EFI_FV_FILETYPE_PEIM The file type EFI_FV_FILETYPE_PEIM denotes a file that is a PEI module (PEIM). A PEI module is dispatched by the PEI Dispatcher based on its dependencies during execution of the PEI phase. This file type is a sectioned file that must be constructed in accordance with the following rules:

As long as the above rules are followed, the file may contain other leaf and encapsulation sections as required or enabled by the platform design. Care must be taken to ensure that additional encapsulations do not render the file inaccessible due to execute-in-place requirements.

EFI_FV_FILETYPE_DRIVER The file type EFI_FV_FILETYPE_DRIVER denotes a file that contains a PE32 image that can be dispatched by the DXE Dispatcher. This file type is a sectioned file that must be constructed in accordance with the following rules:

There are no restrictions on the encapsulation of the leaf sections.

In the event that more than one EFI_SECTION_PE32 section is present in the file, the selection algorithm for choosing which one represents the DXE driver that will be dispatched is defined by the LoadImage() boot service, which is used by the DXE Dispatcher.

The file may contain other leaf and encapsulation sections as required or enabled by the platform design.

EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER The file type EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER denotes a file that contains code suitable for dispatch by the PEI Dispatcher, as well as a PE32 image that can be dispatched by the DXE Dispatcher. It has two uses:
  • Enables sharing code between PEI and DXE to reduce firmware storage requirements.
  • Enables bundling coupled PEIM/driver pairs in the same file.

This file type is a sectioned file and must follow the intersection of all rules defined for both EFI_FV_FILETYPE_PEIM and EFI_FV_FILETYPE_DRIVER files.

This intersection is listed below:

  • The file must contain one and only one EFI_SECTION_PE32 section. There are no restrictions on encapsulation of this section; however, care must be taken to ensure any execute-in-place requirements are satisfied.
  • The file must not contain more than one EFI_SECTION_DXE_DEPEX section.
  • The file must not contain more than one EFI_SECTION_PEI_DEPEX section.
  • The file must contain no more than one EFI_SECTION_VERSION section.

The file may contain other leaf and encapsulation sections as required or enabled by the platform design.

EFI_FV_FILETYPE_APPLICATION The file type EFI_FV_FILETYPE_APPLICATION denotes a file that contains a PE32 image that can be loaded using the UEFI Boot Service LoadImage(). Files of type EFI_FV_FILETYPE_APPLICATION are not dispatched by the DXE Dispatcher. This file type is a sectioned file that must be constructed in accordance with the following rule:
  • The file must contain at least one EFI_SECTION_PE32 section. There are no restrictions on encapsulation of this section.

There are no restrictions on the encapsulation of the leaf section. In the event that more than one EFI_SECTION_PE32 section is present in the file, the selection algorithm for choosing which one represents the PE32 for the application in question is defined by the LoadImage() boot service. The file may contain other leaf and encapsulation sections as required or enabled by the platform design.

EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE The file type EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE denotes a file that contains one or more firmware volume images. This file type is a sectioned file that must be constructed in accordance with the following rule:

The file may contain other leaf and encapsulation sections as required or enabled by the platform design.

EFI_FV_FILETYPE_FFS_PAD Pad file.

Copyright (C) 2008 Phoenix Technologies Ltd. All Rights Reserved. Portions copyright © 2004 Intel Corporation. Used with permission.

Personal tools