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