FmpDevicePkg: Add Capsule Update Policy Protocol

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1525

* Add Capsule Update Policy Protocol to FmpDevicePkg
* Add CapsuleUpdatePolicyLib instance that uses the services
  of the Capsule Update Policy Protocol
* Add module that produces the Capsule Update Policy
  Protocol using the services of the CapsuleUpdatePolicyLib
  class.
* Update FmpDevicePkg DSC to build the new library instance
  and the new module and update builds of FmpDxe modules
  to demonstrate the use of the different CapsuleUpdatePolicyLib
  instances.

Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: Wang Fan <fan.wang@intel.com>
Reviewed-by: Eric Jin <eric.jin@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Eric Jin
2019-08-11 13:36:46 +08:00
committed by Liming Gao
parent 67c1e5ee6e
commit c40f7cc7fd
12 changed files with 784 additions and 10 deletions

View File

@@ -7,7 +7,7 @@
# customized using libraries and PCDs.
#
# Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>
# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
# Copyright (c) 2018 - 2019, Intel Corporation. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -71,6 +71,7 @@
# Libraries
#
FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleUpdatePolicyLibNull.inf
FmpDevicePkg/Library/CapsuleUpdatePolicyLibOnProtocol/CapsuleUpdatePolicyLibOnProtocol.inf
FmpDevicePkg/Library/FmpPayloadHeaderLibV1/FmpPayloadHeaderLibV1.inf
FmpDevicePkg/Library/FmpDeviceLibNull/FmpDeviceLibNull.inf
FmpDevicePkg/FmpDxe/FmpDxeLib.inf
@@ -78,12 +79,23 @@
#
# Modules
#
FmpDevicePkg/CapsuleUpdatePolicyDxe/CapsuleUpdatePolicyDxe.inf {
<LibraryClasses>
CapsuleUpdatePolicyLib|FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleUpdatePolicyLibNull.inf
}
FmpDevicePkg/FmpDxe/FmpDxe.inf {
<Defines>
#
# FILE_GUID is used as ESRT GUID
#
FILE_GUID = $(SYSTEM_FMP_ESRT_GUID)
<LibraryClasses>
#
# Use CapsuleUpdatePolicyLib that calls the Capsule Update Policy Protocol.
# Depends on the CapsuleUpdatePolicyDxe module to produce the protocol.
# Required for FmpDxe modules that are intended to be platform independent.
#
CapsuleUpdatePolicyLib|FmpDevicePkg/Library/CapsuleUpdatePolicyLibOnProtocol/CapsuleUpdatePolicyLibOnProtocol.inf
}
FmpDevicePkg/FmpDxe/FmpDxe.inf {
@@ -92,6 +104,13 @@
# FILE_GUID is used as ESRT GUID
#
FILE_GUID = $(DEVICE_FMP_ESRT_GUID)
<LibraryClasses>
#
# Directly use a platform specific CapsuleUpdatePolicyLib instance.
# Only works for FmpDxe modules that are build from sources and included
# in a system firmware image.
#
CapsuleUpdatePolicyLib|FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleUpdatePolicyLibNull.inf
}
[BuildOptions]