]>
Commit | Line | Data |
---|---|---|
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 | |
10 | # Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>\r | |
11 | #\r | |
12 | # Redistribution and use in source and binary forms, with or without\r | |
13 | # modification, are permitted provided that the following conditions are met:\r | |
14 | # 1. Redistributions of source code must retain the above copyright notice,\r | |
15 | # this list of conditions and the following disclaimer.\r | |
16 | # 2. Redistributions in binary form must reproduce the above copyright notice,\r | |
17 | # this list of conditions and the following disclaimer in the documentation\r | |
18 | # and/or other materials provided with the distribution.\r | |
19 | #\r | |
20 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\r | |
21 | # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r | |
22 | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r | |
23 | # IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\r | |
24 | # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\r | |
25 | # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r | |
26 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\r | |
27 | # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\r | |
28 | # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\r | |
29 | # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r | |
30 | #\r | |
31 | ##\r | |
32 | \r | |
33 | [Defines]\r | |
34 | DEC_SPECIFICATION = 0x00010005\r | |
35 | PACKAGE_NAME = FmpDevicePkg\r | |
36 | PACKAGE_UNI_FILE = FmpDevicePkg.uni\r | |
37 | PACKAGE_GUID = 080b5b4f-27c6-11e8-84d1-f8597177a00a\r | |
38 | PACKAGE_VERSION = 0.1\r | |
39 | \r | |
40 | [Includes]\r | |
41 | Include\r | |
42 | \r | |
43 | [LibraryClasses]\r | |
44 | ## @libraryclass Provides services to retrieve values from a capsule's FMP\r | |
45 | # Payload Header. The structure is not included in the\r | |
46 | # library class. Instead, services are provided to retrieve\r | |
47 | # information from the FMP Payload Header. If information is\r | |
48 | # added to the FMP Payload Header, then new services may be\r | |
49 | # added to this library class to retrieve the new information.\r | |
50 | FmpPayloadHeaderLib|Include/Library/FmpPayloadHeaderLib.h\r | |
51 | \r | |
52 | ## @libraryclass Provides platform policy services used during a capsule\r | |
53 | # update.\r | |
54 | CapsuleUpdatePolicyLib|Include/Library/CapsuleUpdatePolicyLib.h\r | |
55 | \r | |
56 | ## @libraryclass Provides firmware device specific services to support\r | |
57 | # updates of a firmware image stored in a firmware device.\r | |
58 | FmpDeviceLib|Include/Library/FmpDeviceLib.h\r | |
59 | \r | |
60 | [Guids]\r | |
61 | ## Firmware Management Protocol Device Package Token Space GUID\r | |
62 | gFmpDevicePkgTokenSpaceGuid = { 0x40b2d964, 0xfe11, 0x40dc, { 0x82, 0x83, 0x2e, 0xfb, 0xda, 0x29, 0x53, 0x56 } }\r | |
63 | \r | |
64 | [PcdsFixedAtBuild]\r | |
cec7b8fb KM |
65 | ## The SHA-256 hash of a PKCS7 test key that is used to detect if a test key\r |
66 | # is being used to authenticate capsules. Test key detection is disabled by\r | |
67 | # setting the value to {0}.\r | |
68 | # @Prompt SHA-256 hash of PKCS7 test key.\r | |
69 | 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 | |
70 | \r | |
71 | [PcdsFixedAtBuild, PcdsPatchableInModule]\r | |
72 | ## The color of the progress bar during a firmware update. Each firmware\r | |
73 | # device can set its own color. The default color is white.<BR><BR>\r | |
74 | # Bits 7..0 - Red<BR>\r | |
75 | # Bits 15..8 - Green<BR>\r | |
76 | # Bits 23..16 - Blue<BR>\r | |
77 | # @Prompt Firmware Device Progress Bar Color.\r | |
78 | gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceProgressColor|0x00FFFFFF|UINT32|0x40000004\r | |
79 | \r | |
80 | ## The Null-terminated Unicode string used to fill in the ImageIdName field of\r | |
81 | # the EFI_FIRMWARE_IMAGE_DESCRIPTOR structure that is returned by the\r | |
82 | # GetImageInfo() service of the Firmware Management Protocol for the firmware\r | |
83 | # device. An ImageIdName string must be provided for each firmware device.\r | |
84 | # The default value is an empty string.\r | |
85 | # @Prompt Firmware Device ImageIdName string.\r | |
86 | gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceImageIdName|L""|VOID*|0x40000007\r | |
87 | \r | |
88 | ## The build time value used to fill in the LowestSupportedVersion field of\r | |
89 | # the EFI_FIRMWARE_IMAGE_DESCRIPTOR structure that is returned by the\r | |
90 | # GetImageInfo() service of the Firmware Management Protocol. This value is\r | |
91 | # only used if the firmware device does not provide a method to report the\r | |
92 | # lowest supported version value from the current firmware image and the\r | |
93 | # UEFI variable used to provide the lowest supported version value does not\r | |
94 | # exist. The default value is 0.\r | |
95 | # @Prompt Build Time Firmware Device Lowest Support Version.\r | |
96 | gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceBuildTimeLowestSupportedVersion|0x0|UINT32|0x4000000C\r | |
97 | \r | |
98 | ## The time in seconds to arm a watchdog timer during the update of a firmware\r | |
99 | # device. The watchdog is re-armed each time the FmpDeviceLib calls the\r | |
100 | # Progress() function passed into FmpDeviceSetImage() function. The\r | |
101 | # FmpDeviceLib calls Progress() to update the percent completion of a\r | |
102 | # firmware update. If the watchdog timer expires, the system reboots. A\r | |
103 | # value of 0 disables the watchdog timer. The default value is 0 (watchdog\r | |
104 | # disabled).\r | |
105 | # @Prompt Firmware Device Watchdog Time in Seconds.\r | |
106 | gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceProgressWatchdogTimeInSeconds|0x0|UINT8|0x4000000D\r | |
107 | \r | |
108 | [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]\r | |
109 | ## One or more PKCS7 certificates used to verify a firmware device capsule\r | |
110 | # update image. Encoded using the Variable-Length Opaque Data format of RFC\r | |
111 | # 4506 External Data Representation Standard (XDR). The default value is\r | |
112 | # empty with 0 certificates.\r | |
113 | # @Prompt One or more XDR encoded PKCS7 certificates used to verify firmware device capsule update images.\r | |
114 | gFmpDevicePkgTokenSpaceGuid.PcdFmpDevicePkcs7CertBufferXdr|{0x0}|VOID*|0x4000000E\r | |
115 | \r | |
116 | ## An event GUID that locks the firmware device when the event is signaled.\r | |
117 | # If this PCD is not a valid GUID value, then the firmware device is locked\r | |
118 | # when gEfiEndOfDxeEventGroupGuid (End of DXE Phase) is signaled. The\r | |
119 | # default value is empty, so by default the firmware device is locked at the\r | |
120 | # end of the DXE phase.\r | |
121 | # @Prompt Firmware Device Lock Event GUID.\r | |
122 | gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceLockEventGuid|{0}|VOID*|0x4000000F\r | |
123 | \r | |
124 | [UserExtensions.TianoCore."ExtraFiles"]\r | |
125 | FmpDevicePkgExtra.uni\r |