## @file # Firmware Management Protocol Device Package # # This package provides an implementation of a Firmware Management Protocol # instance that supports the update of firmware storage devices using UEFI # Capsules. The behavior of the Firmware Management Protocol instance is # customized using libraries and PCDs. # # Copyright (c) 2016, Microsoft Corporation. All rights reserved.
# Copyright (c) 2018, Intel Corporation. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # ## [Defines] DEC_SPECIFICATION = 0x00010005 PACKAGE_NAME = FmpDevicePkg PACKAGE_UNI_FILE = FmpDevicePkg.uni PACKAGE_GUID = 080b5b4f-27c6-11e8-84d1-f8597177a00a PACKAGE_VERSION = 0.1 [Includes] Include [LibraryClasses] ## @libraryclass Provides services to retrieve values from a capsule's FMP # Payload Header. The structure is not included in the # library class. Instead, services are provided to retrieve # information from the FMP Payload Header. If information is # added to the FMP Payload Header, then new services may be # added to this library class to retrieve the new information. FmpPayloadHeaderLib|Include/Library/FmpPayloadHeaderLib.h ## @libraryclass Provides platform policy services used during a capsule # update. CapsuleUpdatePolicyLib|Include/Library/CapsuleUpdatePolicyLib.h ## @libraryclass Provides firmware device specific services to support # updates of a firmware image stored in a firmware device. FmpDeviceLib|Include/Library/FmpDeviceLib.h [Guids] ## Firmware Management Protocol Device Package Token Space GUID gFmpDevicePkgTokenSpaceGuid = { 0x40b2d964, 0xfe11, 0x40dc, { 0x82, 0x83, 0x2e, 0xfb, 0xda, 0x29, 0x53, 0x56 } } [PcdsFixedAtBuild] ## The SHA-256 hash of a PKCS7 test key that is used to detect if a test key # is being used to authenticate capsules. Test key detection is disabled by # setting the value to {0}. # @Prompt SHA-256 hash of PKCS7 test key. gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceTestKeySha256Digest|{0x2E, 0x97, 0x89, 0x1B, 0xDB, 0xE7, 0x08, 0xAA, 0x8C, 0xB2, 0x8F, 0xAD, 0x20, 0xA9, 0x83, 0xC7, 0x84, 0x7D, 0x4F, 0xEE, 0x48, 0x25, 0xE9, 0x4D, 0x39, 0xFA, 0x34, 0x9A, 0xB8, 0xB1, 0xC4, 0x26}|VOID*|0x40000009 [PcdsFixedAtBuild, PcdsPatchableInModule] ## The color of the progress bar during a firmware update. Each firmware # device can set its own color. The default color is white.

# Bits 7..0 - Red
# Bits 15..8 - Green
# Bits 23..16 - Blue
# @Prompt Firmware Device Progress Bar Color. gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceProgressColor|0x00FFFFFF|UINT32|0x40000004 ## The Null-terminated Unicode string used to fill in the ImageIdName field of # the EFI_FIRMWARE_IMAGE_DESCRIPTOR structure that is returned by the # GetImageInfo() service of the Firmware Management Protocol for the firmware # device. An ImageIdName string must be provided for each firmware device. # The default value is an empty string. # @Prompt Firmware Device ImageIdName string. gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceImageIdName|L""|VOID*|0x40000007 ## The build time value used to fill in the LowestSupportedVersion field of # the EFI_FIRMWARE_IMAGE_DESCRIPTOR structure that is returned by the # GetImageInfo() service of the Firmware Management Protocol. This value is # only used if the firmware device does not provide a method to report the # lowest supported version value from the current firmware image and the # UEFI variable used to provide the lowest supported version value does not # exist. The default value is 0. # @Prompt Build Time Firmware Device Lowest Support Version. gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceBuildTimeLowestSupportedVersion|0x0|UINT32|0x4000000C ## The time in seconds to arm a watchdog timer during the update of a firmware # device. The watchdog is re-armed each time the FmpDeviceLib calls the # Progress() function passed into FmpDeviceSetImage() function. The # FmpDeviceLib calls Progress() to update the percent completion of a # firmware update. If the watchdog timer expires, the system reboots. A # value of 0 disables the watchdog timer. The default value is 0 (watchdog # disabled). # @Prompt Firmware Device Watchdog Time in Seconds. gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceProgressWatchdogTimeInSeconds|0x0|UINT8|0x4000000D [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] ## One or more PKCS7 certificates used to verify a firmware device capsule # update image. Encoded using the Variable-Length Opaque Data format of RFC # 4506 External Data Representation Standard (XDR). The default value is # empty with 0 certificates. # @Prompt One or more XDR encoded PKCS7 certificates used to verify firmware device capsule update images. gFmpDevicePkgTokenSpaceGuid.PcdFmpDevicePkcs7CertBufferXdr|{0x0}|VOID*|0x4000000E ## An event GUID that locks the firmware device when the event is signaled. # If this PCD is not a valid GUID value, then the firmware device is locked # when gEfiEndOfDxeEventGroupGuid (End of DXE Phase) is signaled. The # default value is empty, so by default the firmware device is locked at the # end of the DXE phase. # @Prompt Firmware Device Lock Event GUID. gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceLockEventGuid|{0}|VOID*|0x4000000F [UserExtensions.TianoCore."ExtraFiles"] FmpDevicePkgExtra.uni