MdePkg/Include/Pi/PiFirmwareFile.h File Reference


Data Structures

union  EFI_FFS_INTEGRITY_CHECK
struct  EFI_FFS_FILE_HEADER
struct  EFI_FFS_FILE_HEADER2
struct  EFI_COMMON_SECTION_HEADER
struct  EFI_COMMON_SECTION_HEADER2
struct  EFI_COMPRESSION_SECTION
struct  EFI_COMPRESSION_SECTION2
struct  EFI_FREEFORM_SUBTYPE_GUID_SECTION
struct  EFI_FREEFORM_SUBTYPE_GUID_SECTION2
struct  EFI_GUID_DEFINED_SECTION
struct  EFI_GUID_DEFINED_SECTION2
struct  EFI_USER_INTERFACE_SECTION
struct  EFI_USER_INTERFACE_SECTION2
struct  EFI_VERSION_SECTION
struct  EFI_VERSION_SECTION2

Defines

#define FFS_FIXED_CHECKSUM   0xAA
#define EFI_FV_FILETYPE_ALL   0x00
#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_SMM   0x0A
#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE   0x0B
#define EFI_FV_FILETYPE_COMBINED_SMM_DXE   0x0C
#define EFI_FV_FILETYPE_SMM_CORE   0x0D
#define EFI_FV_FILETYPE_OEM_MIN   0xc0
#define EFI_FV_FILETYPE_OEM_MAX   0xdf
#define EFI_FV_FILETYPE_DEBUG_MIN   0xe0
#define EFI_FV_FILETYPE_DEBUG_MAX   0xef
#define EFI_FV_FILETYPE_FFS_MIN   0xf0
#define EFI_FV_FILETYPE_FFS_MAX   0xff
#define EFI_FV_FILETYPE_FFS_PAD   0xf0
#define FFS_ATTRIB_LARGE_FILE   0x01
#define FFS_ATTRIB_FIXED   0x04
#define FFS_ATTRIB_DATA_ALIGNMENT   0x38
#define FFS_ATTRIB_CHECKSUM   0x40
#define EFI_FILE_HEADER_CONSTRUCTION   0x01
#define EFI_FILE_HEADER_VALID   0x02
#define EFI_FILE_DATA_VALID   0x04
#define EFI_FILE_MARKED_FOR_UPDATE   0x08
#define EFI_FILE_DELETED   0x10
#define EFI_FILE_HEADER_INVALID   0x20
#define IS_FFS_FILE2(FfsFileHeaderPtr)   (((((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Attributes) & FFS_ATTRIB_LARGE_FILE) == FFS_ATTRIB_LARGE_FILE)
#define FFS_FILE_SIZE(FfsFileHeaderPtr)   ((UINT32) (*((UINT32 *) ((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Size) & 0x00ffffff))
#define FFS_FILE2_SIZE(FfsFileHeaderPtr)   ((UINT32) (((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize))
#define EFI_SECTION_ALL   0x00
#define EFI_SECTION_COMPRESSION   0x01
#define EFI_SECTION_GUID_DEFINED   0x02
#define EFI_SECTION_DISPOSABLE   0x03
#define EFI_SECTION_PE32   0x10
#define EFI_SECTION_PIC   0x11
#define EFI_SECTION_TE   0x12
#define EFI_SECTION_DXE_DEPEX   0x13
#define EFI_SECTION_VERSION   0x14
#define EFI_SECTION_USER_INTERFACE   0x15
#define EFI_SECTION_COMPATIBILITY16   0x16
#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE   0x17
#define EFI_SECTION_FREEFORM_SUBTYPE_GUID   0x18
#define EFI_SECTION_RAW   0x19
#define EFI_SECTION_PEI_DEPEX   0x1B
#define EFI_SECTION_SMM_DEPEX   0x1C
#define EFI_NOT_COMPRESSED   0x00
#define EFI_STANDARD_COMPRESSION   0x01
#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED   0x01
#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID   0x02
#define IS_SECTION2(SectionHeaderPtr)   ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff) == 0x00ffffff)
#define SECTION_SIZE(SectionHeaderPtr)   ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff))
#define SECTION2_SIZE(SectionHeaderPtr)   (((EFI_COMMON_SECTION_HEADER2 *) (UINTN) SectionHeaderPtr)->ExtendedSize)

Typedefs

typedef UINT8 EFI_FV_FILETYPE
typedef UINT8 EFI_FFS_FILE_ATTRIBUTES
typedef UINT8 EFI_FFS_FILE_STATE
typedef UINT8 EFI_SECTION_TYPE
typedef EFI_COMMON_SECTION_HEADER EFI_COMPATIBILITY16_SECTION
typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_DISPOSABLE_SECTION
typedef EFI_COMMON_SECTION_HEADER2 EFI_DISPOSABLE_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_DXE_DEPEX_SECTION
typedef EFI_COMMON_SECTION_HEADER2 EFI_DXE_DEPEX_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_FIRMWARE_VOLUME_IMAGE_SECTION
typedef EFI_COMMON_SECTION_HEADER2 EFI_FIRMWARE_VOLUME_IMAGE_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_PE32_SECTION
typedef EFI_COMMON_SECTION_HEADER2 EFI_PE32_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_PEI_DEPEX_SECTION
typedef EFI_COMMON_SECTION_HEADER2 EFI_PEI_DEPEX_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_PIC_SECTION
typedef EFI_COMMON_SECTION_HEADER2 EFI_PIC_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_TE_SECTION
typedef EFI_COMMON_SECTION_HEADER2 EFI_TE_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_RAW_SECTION
typedef EFI_COMMON_SECTION_HEADER2 EFI_RAW_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION
typedef EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2

Detailed Description

The firmware file related definitions in PI.

Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License that accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Revision Reference:
PI Version 1.4.

Define Documentation

#define EFI_FILE_DATA_VALID   0x04

#define EFI_FILE_DELETED   0x10

#define EFI_FILE_HEADER_CONSTRUCTION   0x01

FFS File State Bits.

#define EFI_FILE_HEADER_INVALID   0x20

#define EFI_FILE_HEADER_VALID   0x02

#define EFI_FILE_MARKED_FOR_UPDATE   0x08

#define EFI_FV_FILETYPE_ALL   0x00

File Types Definitions

#define EFI_FV_FILETYPE_APPLICATION   0x09

#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER   0x08

#define EFI_FV_FILETYPE_COMBINED_SMM_DXE   0x0C

#define EFI_FV_FILETYPE_DEBUG_MAX   0xef

#define EFI_FV_FILETYPE_DEBUG_MIN   0xe0

#define EFI_FV_FILETYPE_DRIVER   0x07

#define EFI_FV_FILETYPE_DXE_CORE   0x05

#define EFI_FV_FILETYPE_FFS_MAX   0xff

#define EFI_FV_FILETYPE_FFS_MIN   0xf0

#define EFI_FV_FILETYPE_FFS_PAD   0xf0

#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE   0x0B

#define EFI_FV_FILETYPE_FREEFORM   0x02

#define EFI_FV_FILETYPE_OEM_MAX   0xdf

#define EFI_FV_FILETYPE_OEM_MIN   0xc0

#define EFI_FV_FILETYPE_PEI_CORE   0x04

#define EFI_FV_FILETYPE_PEIM   0x06

#define EFI_FV_FILETYPE_RAW   0x01

#define EFI_FV_FILETYPE_SECURITY_CORE   0x03

#define EFI_FV_FILETYPE_SMM   0x0A

#define EFI_FV_FILETYPE_SMM_CORE   0x0D

#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID   0x02

#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED   0x01

Attributes of EFI_GUID_DEFINED_SECTION.

#define EFI_NOT_COMPRESSED   0x00

CompressionType of EFI_COMPRESSION_SECTION.

#define EFI_SECTION_ALL   0x00

Pseudo type. It is used as a wild card when retrieving sections. The section type EFI_SECTION_ALL matches all section types.

#define EFI_SECTION_COMPATIBILITY16   0x16

#define EFI_SECTION_COMPRESSION   0x01

Encapsulation section Type values.

#define EFI_SECTION_DISPOSABLE   0x03

#define EFI_SECTION_DXE_DEPEX   0x13

#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE   0x17

#define EFI_SECTION_FREEFORM_SUBTYPE_GUID   0x18

#define EFI_SECTION_GUID_DEFINED   0x02

#define EFI_SECTION_PE32   0x10

Leaf section Type values.

#define EFI_SECTION_PEI_DEPEX   0x1B

#define EFI_SECTION_PIC   0x11

#define EFI_SECTION_RAW   0x19

#define EFI_SECTION_SMM_DEPEX   0x1C

#define EFI_SECTION_TE   0x12

#define EFI_SECTION_USER_INTERFACE   0x15

#define EFI_SECTION_VERSION   0x14

#define EFI_STANDARD_COMPRESSION   0x01

#define FFS_ATTRIB_CHECKSUM   0x40

#define FFS_ATTRIB_DATA_ALIGNMENT   0x38

#define FFS_ATTRIB_FIXED   0x04

#define FFS_ATTRIB_LARGE_FILE   0x01

FFS File Attributes.

#define FFS_FILE2_SIZE ( FfsFileHeaderPtr   )     ((UINT32) (((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize))

#define FFS_FILE_SIZE ( FfsFileHeaderPtr   )     ((UINT32) (*((UINT32 *) ((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Size) & 0x00ffffff))

#define FFS_FIXED_CHECKSUM   0xAA

FFS_FIXED_CHECKSUM is the checksum value used when the FFS_ATTRIB_CHECKSUM attribute bit is clear.

#define IS_FFS_FILE2 ( FfsFileHeaderPtr   )     (((((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Attributes) & FFS_ATTRIB_LARGE_FILE) == FFS_ATTRIB_LARGE_FILE)

#define IS_SECTION2 ( SectionHeaderPtr   )     ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff) == 0x00ffffff)

#define SECTION2_SIZE ( SectionHeaderPtr   )     (((EFI_COMMON_SECTION_HEADER2 *) (UINTN) SectionHeaderPtr)->ExtendedSize)

#define SECTION_SIZE ( SectionHeaderPtr   )     ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff))


Typedef Documentation

Leaf section type that contains an IA-32 16-bit executable image.

An encapsulation section type in which the section data is disposable. A disposable section is an encapsulation section in which the section data may be disposed of during the process of creating or updating a firmware image without significant impact on the usefulness of the file. The Type field in the section header is set to EFI_SECTION_DISPOSABLE. This allows optional or descriptive data to be included with the firmware file which can be removed in order to conserve space. The contents of this section are implementation specific, but might contain debug data or detailed integration instructions.

The leaf section which could be used to determine the dispatch order of DXEs.

The leaf section which contains a PI FV.

The leaf section which contains PE32+ image.

The leaf section used to determine the dispatch order of PEIMs.

A leaf section type that contains a position-independent-code (PIC) image. A PIC image section is a leaf section that contains a position-independent-code (PIC) image. In addition to normal PE32+ images that contain relocation information, PEIM executables may be PIC and are referred to as PIC images. A PIC image is the same as a PE32+ image except that all relocation information has been stripped from the image and the image can be moved and will execute correctly without performing any relocation or other fix-ups. EFI_PIC_SECTION2 must be used if the section is 16MB or larger.

The leaf section which contains an array of zero or more bytes.

The SMM dependency expression section is a leaf section that contains a dependency expression that is used to determine the dispatch order for SMM drivers. Before the SMRAM invocation of the SMM driver's entry point, this dependency expression must evaluate to TRUE. See the Platform Initialization Specification, Volume 2, for details regarding the format of the dependency expression. The dependency expression may refer to protocols installed in either the UEFI or the SMM protocol database. EFI_SMM_DEPEX_SECTION2 must be used if the section is 16MB or larger.

The leaf section which constains the position-independent-code image.


Generated on Wed Sep 23 16:24:21 2015 for MdePkg[ALL] by  doxygen 1.5.7.1