Skip to content

Tasks Read only FFS file system driver

Nate DeSimone edited this page Feb 18, 2021 · 1 revision

Develop a read-only file system driver which allows the contents of each PI 1.2 FFS in the system to appear as a UEFI file system.

  • Difficulty: Medium
  • Language: C
  • Mentor:
  • Suggested by: @mdkinney

Table of Contents

Status

Details

The PI 1.2 Firmware File System (FFS) allows firmware elements to be packed efficiently into flash memory.

The FirmwareVolume2 protocol allows firmware code to easily access the contents of each FFS. This protocol is defined within FirmwareVolume2.h.

Filesystems (generally disk based) in UEFI can be accessed through the SimpleFileSystem protocol. This protocol is the defined within SimpleFileSystem.h.

This project would involve reading each FirmwareVolume2 protocol instance and from it producing a SimpleFileSystem instance. Each FFS file appear as a readable file.

Each FFS file which contains a PE/COFF section should have a .efi file available in the system. An example uses of this would be to allow UEFI applications stored in the FFS to be run from the UEFI shell.

Development environment

Building: This project can be completed on any edk2 supported OS or toolchain.

Testing: This project can be tested on any PI 1.2 system. Even without loading the driver into flash, it can be loaded by using the EFI shell 'load' command. OVMF, Nt32Pkg or UnixPkg could each provide friendly test environments.

Further Discussion

This project would be for an edk2 based driver, so please discuss the project on edk2-devel.

See Also

Clone this wiki locally