Skip to content

Firmware Management Protocol (FMP) Device Package

FmpDevicePkg provides the common resources necessary to manage the firmware on a given device. The UEFI Specification defines several elements used in the firmware management process that are implemented or depended upon in FmpDevicePkg such as:

  2. Firmware Management Protocol dependency expression support
  3. FMP capsule format
  4. EFI System Resource Table (ESRT)

Package Organization

This section briefly describes the package modules and libraries.


  1. CapsuleUpdatePolicyDxe readme
  2. Purpose: \ Produces the Capsule Update Policy Protocol using the services of the Capsule Update Policy Library.
  3. FmpDxe readme
  4. Purpose: \ Produces an instance of the Firmware Management Protocol (EFI_FIRMWARE_MANAGEMENT_PROTOCOL) that is used to support updates to a firmware image stored on a firmware device

Further Reading

Several documents describe important elements involved in understanding FmpDevicePkg. Consult the following resource for more information on a particular topic.

  1. FmpDevicePkg Overview

    1. The ReadMe documents referenced above that reside in the package.
    2. Tianocore wiki: FmpDevicePkg
  2. UEFI Specification Definitions for Firmware Updating and Reporting

    1. Section 23 of the UEFI Specification 2.8B
  3. Technical Overview of the EDK II Capsule Update and Recovery Flow

    1. A Tour Beyond BIOS - Capsule Update and Recovery in EDK II
  4. Windows UEFI Firmware Update Resources

    1. Windows UEFI Firmware Update Platform
    2. Validating Windows UEFI Firmware Update Platform Functionality
  5. NIST Guidelines for Authenticated Firmware Update

    1. SP800-147
    2. SP800-147B
    3. SP800-193