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:

  1. EFI_FIRMWARE_MANAGEMENT_PROTOCOL
  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.

Modules

  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

Libraries

  1. CapsuleUpdatePolicyLib
  2. Purpose: \ Provides platform policy services used during a capsule update.

    1. CapsuleUpdatePolicyLibNull readme
    2. CapsuleUpdatePolicyLibOnProtocol readme
    3. FmpDependencyCheckLib
    4. Purpose: \ Provides services to check that capsule dependencies are met during firmware update.

    5. FmpDependencyCheckLib readme

    6. FmpDependencyCheckLibNull readme
    7. FmpDependencyDeviceLib
    8. Purpose: \ Provides firmware device specific services to support saving dependency expressions to a firmware device and getting dependency expressions from a firmware device.

    9. FmpDependencyDeviceLibNull readme

    10. FmpDependencyLib
    11. Purpose: \ Provides functions used to manage dependencies between firmware components during the update of device firmware images.

    12. FmpDependencyLib readme

    13. FmpDeviceLib
    14. Purpose: \ Provides firmware device specific services to support firmware updates on a given device.

    15. FmpDeviceLibNull readme

    16. FmpPayloadHeaderLib
    17. Purpose: \ Provides services to retrieve values from a capsule FMP Payload Header.

    18. FmpPayloadHeaderLibV1 readme

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