Skip to content

Pi firmware volume

pi_firmware_volume

Module containing helper classes and functions for working with UEFI Fvs.

EfiFirmwareVolumeHeader

An object representing an EFI_FIRMWARE_VOLUME_HEADER.

Can parse or produce an EFI_FIRMWARE_VOLUME_HEADER structure/byte buffer.

typedef struct {
    UINT8                     ZeroVector[16];
    EFI_GUID                  FileSystemGuid;
    UINT64                    FvLength;
    UINT32                    Signature;
    EFI_FVB_ATTRIBUTES_2      Attributes;
    UINT16                    HeaderLength;
    UINT16                    Checksum;
    UINT16                    ExtHeaderOffset;
    UINT8                     Reserved[1];
    UINT8                     Revision;
    EFI_FV_BLOCK_MAP_ENTRY    BlockMap[1];
} EFI_FIRMWARE_VOLUME_HEADER;

__init__

__init__() -> EfiFirmwareVolumeHeader

Inits an empty object.

load_from_file

load_from_file(file: IO) -> EfiFirmwareVolumeHeader

Loads data into the object from a filestream.

Parameters:

Name Type Description Default
file obj

An open file that has been seeked to the correct location.

required

Returns:

Type Description
EfiFirmwareVolumeHeader

self

Raises:

Type Description
Exception

Invalid signature in fs

serialize

serialize() -> bytes

Serializes the object.

Returns:

Type Description
str

string representing packed data as bytes (i.e. b'\x01\x00\x03')

EfiFirmwareVolumeExtHeader

An object representing an EFI_FIRMWARE_VOLUME_EXT_HEADER.

Can parse or produce an EFI_FIRMWARE_VOLUME_EXT_HEADER structure/byte buffer.

typedef struct {
    EFI_GUID                  FileSystemGuid;
    UINT32                    ExtHeaderSize;
} EFI_FIRMWARE_VOLUME_EXT_HEADER;

__init__

__init__() -> EfiFirmwareVolumeExtHeader

Inits an empty object.

load_from_file

load_from_file(file: IO) -> EfiFirmwareVolumeExtHeader

Loads data into the object from a filestream.

Parameters:

Name Type Description Default
file IO

An open file that has been seeked to the correct location.

required

Returns:

Type Description
EfiFirmwareVolumeExtHeader

self