# customized using libraries and PCDs.\r
#\r
# Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>\r
-# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2018 - 2020, Intel Corporation. All rights reserved.<BR>\r
#\r
-# Redistribution and use in source and binary forms, with or without\r
-# modification, are permitted provided that the following conditions are met:\r
-# 1. Redistributions of source code must retain the above copyright notice,\r
-# this list of conditions and the following disclaimer.\r
-# 2. Redistributions in binary form must reproduce the above copyright notice,\r
-# this list of conditions and the following disclaimer in the documentation\r
-# and/or other materials provided with the distribution.\r
-#\r
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\r
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
-# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\r
-# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\r
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\r
-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\r
-# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\r
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
##\r
\r
[Includes]\r
Include\r
\r
-[LibraryClasses]\r
- ## @libraryclass Provides services to retrieve values from a capsule's FMP\r
- # Payload Header. The structure is not included in the\r
- # library class. Instead, services are provided to retrieve\r
- # information from the FMP Payload Header. If information is\r
- # added to the FMP Payload Header, then new services may be\r
- # added to this library class to retrieve the new information.\r
- FmpPayloadHeaderLib|Include/Library/FmpPayloadHeaderLib.h\r
+[Includes.Common.Private]\r
+ PrivateInclude\r
\r
+[LibraryClasses]\r
## @libraryclass Provides platform policy services used during a capsule\r
# update.\r
CapsuleUpdatePolicyLib|Include/Library/CapsuleUpdatePolicyLib.h\r
# updates of a firmware image stored in a firmware device.\r
FmpDeviceLib|Include/Library/FmpDeviceLib.h\r
\r
+ ## @libraryclass Provides generic services to support capsule dependency\r
+ # expression evaluation.\r
+ FmpDependencyLib|Include/Library/FmpDependencyLib.h\r
+\r
+ ## @libraryclass Provides platform specific services to support dependency\r
+ # check during update of firmware image.\r
+ FmpDependencyCheckLib|Include/Library/FmpDependencyCheckLib.h\r
+\r
+ ## @libraryclass Provides firmware device specific services to support\r
+ # saving dependency to firmware device and getting dependency\r
+ # from firmware device.\r
+ FmpDependencyDeviceLib|Include/Library/FmpDependencyDeviceLib.h\r
+\r
+[LibraryClasses.Common.Private]\r
+ ## @libraryclass Provides services to retrieve values from a capsule's FMP\r
+ # Payload Header. The structure is not included in the\r
+ # library class. Instead, services are provided to retrieve\r
+ # information from the FMP Payload Header. If information is\r
+ # added to the FMP Payload Header, then new services may be\r
+ # added to this library class to retrieve the new information.\r
+ FmpPayloadHeaderLib|PrivateInclude/Library/FmpPayloadHeaderLib.h\r
+\r
[Guids]\r
## Firmware Management Protocol Device Package Token Space GUID\r
gFmpDevicePkgTokenSpaceGuid = { 0x40b2d964, 0xfe11, 0x40dc, { 0x82, 0x83, 0x2e, 0xfb, 0xda, 0x29, 0x53, 0x56 } }\r
\r
-[PcdsFixedAtBuild]\r
- ## Indicates if a full system reset is required before a firmware update to a\r
- # firmware devices takes effect.<BR><BR>\r
- # TRUE - System reset is required.<BR>\r
- # FALSE - System reset is not required.<BR>\r
- # @Prompt FMP Device System Reset Required.\r
- gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceSystemResetRequired|TRUE|BOOLEAN|0x40000008\r
+[Protocols.Common.Private]\r
+ ## Capsule Update Policy Protocol\r
+ gEdkiiCapsuleUpdatePolicyProtocolGuid = { 0x487784c5, 0x6299, 0x4ba6, { 0xb0, 0x96, 0x5c, 0xc5, 0x27, 0x7c, 0xf7, 0x57 } }\r
\r
+[PcdsFeatureFlag]\r
+ ## Indicates if the Firmware Management Protocol supports access to\r
+ # to a firmware storage device. If set to FALSE, then only GetImageInfo()\r
+ # is supported. This is used by FMP drivers that require the smallest\r
+ # possible Firmware Management Protocol implementation that supports\r
+ # advertising the updatable firmware device in the ESRT.<BR>\r
+ # TRUE - All Firmware Management Protocol services supported.<BR>\r
+ # FALSE - Firmware Management Protocol returns EFI_UNSUPPORTED for\r
+ # all services except GetImageInfo().<BR>\r
+ # @Prompt Firmware Device Storage Access Enabled.\r
+ gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceStorageAccessEnable|TRUE|BOOLEAN|0x40000011\r
+\r
+[PcdsFixedAtBuild]\r
## The SHA-256 hash of a PKCS7 test key that is used to detect if a test key\r
# is being used to authenticate capsules. Test key detection is disabled by\r
# setting the value to {0}.\r
# @Prompt Firmware Device Watchdog Time in Seconds.\r
gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceProgressWatchdogTimeInSeconds|0x0|UINT8|0x4000000D\r
\r
+ ## The Image Type ID to use if one is not provided by FmpDeviceLib. If this\r
+ # PCD is not a valid GUID value, then gEfiCallerIdGuid is used.\r
+ # @Prompt Firmware Device Image Type ID\r
+ gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceImageTypeIdGuid|{0}|VOID*|0x40000010\r
+\r
[PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]\r
## One or more PKCS7 certificates used to verify a firmware device capsule\r
# update image. Encoded using the Variable-Length Opaque Data format of RFC\r