iPXE
Data Structures | Defines | Typedefs | Functions
PiFirmwareFile.h File Reference

The firmware file related definitions in PI. More...

Go to the source code of this file.

Data Structures

union  EFI_FFS_INTEGRITY_CHECK
 Used to verify the integrity of the file. More...
struct  EFI_FFS_FILE_HEADER
 Each file begins with the header that describe the contents and state of the files. More...
struct  EFI_FFS_FILE_HEADER2
struct  EFI_COMMON_SECTION_HEADER
 Common section header. More...
struct  EFI_COMMON_SECTION_HEADER2
struct  EFI_COMPRESSION_SECTION
 An encapsulation section type in which the section data is compressed. More...
struct  EFI_COMPRESSION_SECTION2
struct  EFI_FREEFORM_SUBTYPE_GUID_SECTION
 The leaf section which contains a single GUID. More...
struct  EFI_FREEFORM_SUBTYPE_GUID_SECTION2
struct  EFI_GUID_DEFINED_SECTION
 The leaf section which is encapsulation defined by specific GUID. More...
struct  EFI_GUID_DEFINED_SECTION2
struct  EFI_USER_INTERFACE_SECTION
 The leaf section which contains a unicode string that is human readable file name. More...
struct  EFI_USER_INTERFACE_SECTION2
struct  EFI_VERSION_SECTION
 The leaf section which contains a numeric build number and an optional unicode string that represents the file revision. More...
struct  EFI_VERSION_SECTION2

Defines

#define FFS_FIXED_CHECKSUM   0xAA
 FFS_FIXED_CHECKSUM is the checksum value used when the FFS_ATTRIB_CHECKSUM attribute bit is clear.
#define EFI_FV_FILETYPE_ALL   0x00
 File Types Definitions.
#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
 FFS File Attributes.
#define FFS_ATTRIB_FIXED   0x04
#define FFS_ATTRIB_DATA_ALIGNMENT   0x38
#define FFS_ATTRIB_CHECKSUM   0x40
#define EFI_FILE_HEADER_CONSTRUCTION   0x01
 FFS File State Bits.
#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
 Pseudo type.
#define EFI_SECTION_COMPRESSION   0x01
 Encapsulation section Type values.
#define EFI_SECTION_GUID_DEFINED   0x02
#define EFI_SECTION_DISPOSABLE   0x03
#define EFI_SECTION_PE32   0x10
 Leaf section Type values.
#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
 CompressionType of EFI_COMPRESSION_SECTION.
#define EFI_STANDARD_COMPRESSION   0x01
#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED   0x01
 Attributes of EFI_GUID_DEFINED_SECTION.
#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
 Leaf section type that contains an IA-32 16-bit executable image.
typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_DISPOSABLE_SECTION
 An encapsulation section type in which the section data is disposable.
typedef EFI_COMMON_SECTION_HEADER2 EFI_DISPOSABLE_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_DXE_DEPEX_SECTION
 The leaf section which could be used to determine the dispatch order of DXEs.
typedef EFI_COMMON_SECTION_HEADER2 EFI_DXE_DEPEX_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_FIRMWARE_VOLUME_IMAGE_SECTION
 The leaf section which contains a PI FV.
typedef EFI_COMMON_SECTION_HEADER2 EFI_FIRMWARE_VOLUME_IMAGE_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_PE32_SECTION
 The leaf section which contains PE32+ image.
typedef EFI_COMMON_SECTION_HEADER2 EFI_PE32_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_PEI_DEPEX_SECTION
 The leaf section used to determine the dispatch order of PEIMs.
typedef EFI_COMMON_SECTION_HEADER2 EFI_PEI_DEPEX_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_PIC_SECTION
 A leaf section type that contains a position-independent-code (PIC) image.
typedef EFI_COMMON_SECTION_HEADER2 EFI_PIC_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_TE_SECTION
 The leaf section which constains the position-independent-code image.
typedef EFI_COMMON_SECTION_HEADER2 EFI_TE_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_RAW_SECTION
 The leaf section which contains an array of zero or more bytes.
typedef EFI_COMMON_SECTION_HEADER2 EFI_RAW_SECTION2
typedef EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION
 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.
typedef EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2

Functions

 FILE_LICENCE (BSD3)

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.

Definition in file PiFirmwareFile.h.


Define Documentation

#define FFS_FIXED_CHECKSUM   0xAA

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

Definition at line 57 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_ALL   0x00

File Types Definitions.

Definition at line 66 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_RAW   0x01

Definition at line 67 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_FREEFORM   0x02

Definition at line 68 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_SECURITY_CORE   0x03

Definition at line 69 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_PEI_CORE   0x04

Definition at line 70 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_DXE_CORE   0x05

Definition at line 71 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_PEIM   0x06

Definition at line 72 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_DRIVER   0x07

Definition at line 73 of file PiFirmwareFile.h.

Definition at line 74 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_APPLICATION   0x09

Definition at line 75 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_SMM   0x0A

Definition at line 76 of file PiFirmwareFile.h.

Definition at line 77 of file PiFirmwareFile.h.

Definition at line 78 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_SMM_CORE   0x0D

Definition at line 79 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_OEM_MIN   0xc0

Definition at line 80 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_OEM_MAX   0xdf

Definition at line 81 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_DEBUG_MIN   0xe0

Definition at line 82 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_DEBUG_MAX   0xef

Definition at line 83 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_FFS_MIN   0xf0

Definition at line 84 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_FFS_MAX   0xff

Definition at line 85 of file PiFirmwareFile.h.

#define EFI_FV_FILETYPE_FFS_PAD   0xf0

Definition at line 86 of file PiFirmwareFile.h.

#define FFS_ATTRIB_LARGE_FILE   0x01

FFS File Attributes.

Definition at line 90 of file PiFirmwareFile.h.

#define FFS_ATTRIB_FIXED   0x04

Definition at line 91 of file PiFirmwareFile.h.

#define FFS_ATTRIB_DATA_ALIGNMENT   0x38

Definition at line 92 of file PiFirmwareFile.h.

#define FFS_ATTRIB_CHECKSUM   0x40

Definition at line 93 of file PiFirmwareFile.h.

#define EFI_FILE_HEADER_CONSTRUCTION   0x01

FFS File State Bits.

Definition at line 98 of file PiFirmwareFile.h.

#define EFI_FILE_HEADER_VALID   0x02

Definition at line 99 of file PiFirmwareFile.h.

#define EFI_FILE_DATA_VALID   0x04

Definition at line 100 of file PiFirmwareFile.h.

#define EFI_FILE_MARKED_FOR_UPDATE   0x08

Definition at line 101 of file PiFirmwareFile.h.

#define EFI_FILE_DELETED   0x10

Definition at line 102 of file PiFirmwareFile.h.

#define EFI_FILE_HEADER_INVALID   0x20

Definition at line 103 of file PiFirmwareFile.h.

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

Definition at line 181 of file PiFirmwareFile.h.

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

Definition at line 184 of file PiFirmwareFile.h.

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

Definition at line 187 of file PiFirmwareFile.h.

#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.

Definition at line 196 of file PiFirmwareFile.h.

#define EFI_SECTION_COMPRESSION   0x01

Encapsulation section Type values.

Definition at line 201 of file PiFirmwareFile.h.

#define EFI_SECTION_GUID_DEFINED   0x02

Definition at line 203 of file PiFirmwareFile.h.

#define EFI_SECTION_DISPOSABLE   0x03

Definition at line 205 of file PiFirmwareFile.h.

#define EFI_SECTION_PE32   0x10

Leaf section Type values.

Definition at line 210 of file PiFirmwareFile.h.

#define EFI_SECTION_PIC   0x11

Definition at line 211 of file PiFirmwareFile.h.

#define EFI_SECTION_TE   0x12

Definition at line 212 of file PiFirmwareFile.h.

#define EFI_SECTION_DXE_DEPEX   0x13

Definition at line 213 of file PiFirmwareFile.h.

#define EFI_SECTION_VERSION   0x14

Definition at line 214 of file PiFirmwareFile.h.

#define EFI_SECTION_USER_INTERFACE   0x15

Definition at line 215 of file PiFirmwareFile.h.

#define EFI_SECTION_COMPATIBILITY16   0x16

Definition at line 216 of file PiFirmwareFile.h.

Definition at line 217 of file PiFirmwareFile.h.

Definition at line 218 of file PiFirmwareFile.h.

#define EFI_SECTION_RAW   0x19

Definition at line 219 of file PiFirmwareFile.h.

#define EFI_SECTION_PEI_DEPEX   0x1B

Definition at line 220 of file PiFirmwareFile.h.

#define EFI_SECTION_SMM_DEPEX   0x1C

Definition at line 221 of file PiFirmwareFile.h.

#define EFI_NOT_COMPRESSED   0x00

CompressionType of EFI_COMPRESSION_SECTION.

Definition at line 264 of file PiFirmwareFile.h.

#define EFI_STANDARD_COMPRESSION   0x01

Definition at line 265 of file PiFirmwareFile.h.

Attributes of EFI_GUID_DEFINED_SECTION.

Definition at line 352 of file PiFirmwareFile.h.

Definition at line 353 of file PiFirmwareFile.h.

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

Definition at line 484 of file PiFirmwareFile.h.

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

Definition at line 487 of file PiFirmwareFile.h.

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

Definition at line 490 of file PiFirmwareFile.h.


Typedef Documentation

Definition at line 59 of file PiFirmwareFile.h.

Definition at line 60 of file PiFirmwareFile.h.

Definition at line 61 of file PiFirmwareFile.h.

Definition at line 190 of file PiFirmwareFile.h.

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

Definition at line 258 of file PiFirmwareFile.h.

Definition at line 259 of file PiFirmwareFile.h.

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.

Definition at line 309 of file PiFirmwareFile.h.

Definition at line 310 of file PiFirmwareFile.h.

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

Definition at line 315 of file PiFirmwareFile.h.

Definition at line 316 of file PiFirmwareFile.h.

The leaf section which contains a PI FV.

Definition at line 321 of file PiFirmwareFile.h.

Definition at line 322 of file PiFirmwareFile.h.

The leaf section which contains PE32+ image.

Definition at line 398 of file PiFirmwareFile.h.

Definition at line 399 of file PiFirmwareFile.h.

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

Definition at line 404 of file PiFirmwareFile.h.

Definition at line 405 of file PiFirmwareFile.h.

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.

Definition at line 416 of file PiFirmwareFile.h.

Definition at line 417 of file PiFirmwareFile.h.

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

Definition at line 422 of file PiFirmwareFile.h.

Definition at line 423 of file PiFirmwareFile.h.

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

Definition at line 428 of file PiFirmwareFile.h.

Definition at line 429 of file PiFirmwareFile.h.

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.

Definition at line 439 of file PiFirmwareFile.h.

Definition at line 440 of file PiFirmwareFile.h.


Function Documentation

FILE_LICENCE ( BSD3  )