]> git.proxmox.com Git - mirror_edk2.git/blame - FmpDevicePkg/FmpDevicePkg.dec
FmpDevicePkg: Add FmpDependencyCheck library class and instances
[mirror_edk2.git] / FmpDevicePkg / FmpDevicePkg.dec
CommitLineData
cec7b8fb
KM
1## @file\r
2# Firmware Management Protocol Device Package\r
3#\r
4# This package provides an implementation of a Firmware Management Protocol\r
5# instance that supports the update of firmware storage devices using UEFI\r
6# Capsules. The behavior of the Firmware Management Protocol instance is\r
7# customized using libraries and PCDs.\r
8#\r
9# Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>\r
a93bf06b 10# Copyright (c) 2018 - 2020, Intel Corporation. All rights reserved.<BR>\r
cec7b8fb 11#\r
bcef758c 12# SPDX-License-Identifier: BSD-2-Clause-Patent\r
cec7b8fb
KM
13#\r
14##\r
15\r
16[Defines]\r
17 DEC_SPECIFICATION = 0x00010005\r
18 PACKAGE_NAME = FmpDevicePkg\r
19 PACKAGE_UNI_FILE = FmpDevicePkg.uni\r
20 PACKAGE_GUID = 080b5b4f-27c6-11e8-84d1-f8597177a00a\r
21 PACKAGE_VERSION = 0.1\r
22\r
23[Includes]\r
24 Include\r
25\r
c40f7cc7
EJ
26[Includes.Common.Private]\r
27 PrivateInclude\r
cec7b8fb 28\r
c40f7cc7 29[LibraryClasses]\r
cec7b8fb
KM
30 ## @libraryclass Provides platform policy services used during a capsule\r
31 # update.\r
32 CapsuleUpdatePolicyLib|Include/Library/CapsuleUpdatePolicyLib.h\r
33\r
34 ## @libraryclass Provides firmware device specific services to support\r
35 # updates of a firmware image stored in a firmware device.\r
36 FmpDeviceLib|Include/Library/FmpDeviceLib.h\r
37\r
a93bf06b
WX
38 ## @libraryclass Provides generic services to support capsule dependency\r
39 # expression evaluation.\r
40 FmpDependencyLib|Include/Library/FmpDependencyLib.h\r
41\r
6c496642
WX
42 ## @libraryclass Provides platform specific services to support dependency\r
43 # check during update of firmware image.\r
44 FmpDependencyCheckLib|Include/Library/FmpDependencyCheckLib.h\r
45\r
c40f7cc7
EJ
46[LibraryClasses.Common.Private]\r
47 ## @libraryclass Provides services to retrieve values from a capsule's FMP\r
48 # Payload Header. The structure is not included in the\r
49 # library class. Instead, services are provided to retrieve\r
50 # information from the FMP Payload Header. If information is\r
51 # added to the FMP Payload Header, then new services may be\r
52 # added to this library class to retrieve the new information.\r
53 FmpPayloadHeaderLib|PrivateInclude/Library/FmpPayloadHeaderLib.h\r
54\r
cec7b8fb
KM
55[Guids]\r
56 ## Firmware Management Protocol Device Package Token Space GUID\r
57 gFmpDevicePkgTokenSpaceGuid = { 0x40b2d964, 0xfe11, 0x40dc, { 0x82, 0x83, 0x2e, 0xfb, 0xda, 0x29, 0x53, 0x56 } }\r
58\r
c40f7cc7
EJ
59[Protocols.Common.Private]\r
60 ## Capsule Update Policy Protocol\r
95d28836 61 gEdkiiCapsuleUpdatePolicyProtocolGuid = { 0x487784c5, 0x6299, 0x4ba6, { 0xb0, 0x96, 0x5c, 0xc5, 0x27, 0x7c, 0xf7, 0x57 } }\r
c40f7cc7 62\r
11d35494
EJ
63[PcdsFeatureFlag]\r
64 ## Indicates if the Firmware Management Protocol supports access to\r
65 # to a firmware storage device. If set to FALSE, then only GetImageInfo()\r
95d28836 66 # is supported. This is used by FMP drivers that require the smallest\r
11d35494
EJ
67 # possible Firmware Management Protocol implementation that supports\r
68 # advertising the updatable firmware device in the ESRT.<BR>\r
69 # TRUE - All Firmware Management Protocol services supported.<BR>\r
70 # FALSE - Firmware Management Protocol returns EFI_UNSUPPORTED for\r
71 # all services except GetImageInfo().<BR>\r
72 # @Prompt Firmware Device Storage Access Enabled.\r
73 gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceStorageAccessEnable|TRUE|BOOLEAN|0x40000011\r
74\r
cec7b8fb 75[PcdsFixedAtBuild]\r
cec7b8fb
KM
76 ## The SHA-256 hash of a PKCS7 test key that is used to detect if a test key\r
77 # is being used to authenticate capsules. Test key detection is disabled by\r
78 # setting the value to {0}.\r
79 # @Prompt SHA-256 hash of PKCS7 test key.\r
80 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\r
81\r
82[PcdsFixedAtBuild, PcdsPatchableInModule]\r
83 ## The color of the progress bar during a firmware update. Each firmware\r
84 # device can set its own color. The default color is white.<BR><BR>\r
85 # Bits 7..0 - Red<BR>\r
86 # Bits 15..8 - Green<BR>\r
87 # Bits 23..16 - Blue<BR>\r
88 # @Prompt Firmware Device Progress Bar Color.\r
89 gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceProgressColor|0x00FFFFFF|UINT32|0x40000004\r
90\r
91 ## The Null-terminated Unicode string used to fill in the ImageIdName field of\r
92 # the EFI_FIRMWARE_IMAGE_DESCRIPTOR structure that is returned by the\r
93 # GetImageInfo() service of the Firmware Management Protocol for the firmware\r
94 # device. An ImageIdName string must be provided for each firmware device.\r
95 # The default value is an empty string.\r
96 # @Prompt Firmware Device ImageIdName string.\r
97 gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceImageIdName|L""|VOID*|0x40000007\r
98\r
99 ## The build time value used to fill in the LowestSupportedVersion field of\r
100 # the EFI_FIRMWARE_IMAGE_DESCRIPTOR structure that is returned by the\r
101 # GetImageInfo() service of the Firmware Management Protocol. This value is\r
102 # only used if the firmware device does not provide a method to report the\r
103 # lowest supported version value from the current firmware image and the\r
104 # UEFI variable used to provide the lowest supported version value does not\r
105 # exist. The default value is 0.\r
106 # @Prompt Build Time Firmware Device Lowest Support Version.\r
107 gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceBuildTimeLowestSupportedVersion|0x0|UINT32|0x4000000C\r
108\r
109 ## The time in seconds to arm a watchdog timer during the update of a firmware\r
110 # device. The watchdog is re-armed each time the FmpDeviceLib calls the\r
111 # Progress() function passed into FmpDeviceSetImage() function. The\r
112 # FmpDeviceLib calls Progress() to update the percent completion of a\r
113 # firmware update. If the watchdog timer expires, the system reboots. A\r
114 # value of 0 disables the watchdog timer. The default value is 0 (watchdog\r
115 # disabled).\r
116 # @Prompt Firmware Device Watchdog Time in Seconds.\r
117 gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceProgressWatchdogTimeInSeconds|0x0|UINT8|0x4000000D\r
118\r
278c3d48
EJ
119 ## The Image Type ID to use if one is not provided by FmpDeviceLib. If this\r
120 # PCD is not a valid GUID value, then gEfiCallerIdGuid is used.\r
121 # @Prompt Firmware Device Image Type ID\r
122 gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceImageTypeIdGuid|{0}|VOID*|0x40000010\r
123\r
cec7b8fb
KM
124[PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]\r
125 ## One or more PKCS7 certificates used to verify a firmware device capsule\r
126 # update image. Encoded using the Variable-Length Opaque Data format of RFC\r
127 # 4506 External Data Representation Standard (XDR). The default value is\r
128 # empty with 0 certificates.\r
129 # @Prompt One or more XDR encoded PKCS7 certificates used to verify firmware device capsule update images.\r
130 gFmpDevicePkgTokenSpaceGuid.PcdFmpDevicePkcs7CertBufferXdr|{0x0}|VOID*|0x4000000E\r
131\r
132 ## An event GUID that locks the firmware device when the event is signaled.\r
133 # If this PCD is not a valid GUID value, then the firmware device is locked\r
134 # when gEfiEndOfDxeEventGroupGuid (End of DXE Phase) is signaled. The\r
135 # default value is empty, so by default the firmware device is locked at the\r
136 # end of the DXE phase.\r
137 # @Prompt Firmware Device Lock Event GUID.\r
138 gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceLockEventGuid|{0}|VOID*|0x4000000F\r
139\r
140[UserExtensions.TianoCore."ExtraFiles"]\r
141 FmpDevicePkgExtra.uni\r