Michael Kubacki
6ad819c1ab
FmpDevicePkg/FmpDeviceLib: Add Last Attempt Status to Check/Set API
...
Provides the ability for a given FMP device library instance to
return a Last Attempt Status code during check image and set image
operations with FmpDeviceCheckImageEx() and FmpDeviceSetImageEx().
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Cc: Wei6 Xu <wei6.xu@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Acked-by: Liming Gao <gaoliming@byosoft.com.cn >
Reviewed-by: Wei6 Xu <wei6.xu@intel.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2020-10-28 06:05:52 +00:00
Michael Kubacki
207414cba4
FmpDevicePkg: Add Last Attempt Status support to dependency libs
...
The FMP dependency libraries are leveraged during firmware update
to check for dependencies required to update the image.
This change adds granular Last Attempt Status code support to these
services so failures can be more easily observed during the firmware
update process via Last Attempt Status codes.
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Cc: Wei6 Xu <wei6.xu@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Acked-by: Liming Gao <gaoliming@byosoft.com.cn >
Reviewed-by: Wei6 Xu <wei6.xu@intel.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2020-10-28 06:05:52 +00:00
Michael Kubacki
e4e27351e8
FmpDevicePkg/FmpDependencyCheckLib: Return unsatisfied on handle failure
...
CheckFmpDependency () will currently return that dependencies are
satisfied if the initial call in the function to locate handles
that have gEfiFirmwareManagementProtocolGuid installed fails.
This change updates the error handling to return FALSE (dependencies
are not satisfied) if this handle search fails.
Cc: Liming Gao <liming.gao@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Cc: Wei6 Xu <wei6.xu@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Wei6 Xu <wei6.xu@intel.com >
2020-08-07 02:30:01 +00:00
Michael Kubacki
8665226464
FmpDevicePkg/FmpDependencyLib: Handle version string overflow
...
This change recognizes the condition of the DEPEX version string
extending beyond the end of the dependency expression as an error.
Cc: Liming Gao <liming.gao@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Cc: Wei6 Xu <wei6.xu@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Wei6 Xu <wei6.xu@intel.com >
2020-08-07 02:30:01 +00:00
Michael Kubacki
c2db6a86a2
FmpDevicePkg/FmpDependencyLib: Fix "exression" typo
...
Cc: Liming Gao <liming.gao@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Cc: Wei6 Xu <wei6.xu@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Wei6 Xu <wei6.xu@intel.com >
2020-08-07 02:30:01 +00:00
Michael Kubacki
ef0460b852
FmpDevicePkg/FmpDependencyLib: Correct ValidateDependency() documentation
...
Modifies the return value documentation to state that the BOOLEAN
value indicates whether a given dependency expression is valid
not a capsule.
Cc: Liming Gao <liming.gao@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Cc: Wei6 Xu <wei6.xu@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Wei6 Xu <wei6.xu@intel.com >
2020-08-07 02:30:01 +00:00
Wei6 Xu
ba86bb2c4d
FmpDevicePkg: Add FmpDependencyDevice library class and NULL instance
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2696
This library provides firmware device specific services to support
saving dependency to firmware device and getting dependency from
firmware device.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <liming.gao@intel.com >
Cc: Sean Brogan <sean.brogan@microsoft.com >
Signed-off-by: Wei6 Xu <wei6.xu@intel.com >
Reviewed-by: Sean Brogan <sean.brogan@microsoft.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2020-05-15 06:11:44 +00:00
Wei6 Xu
6c4966423b
FmpDevicePkg: Add FmpDependencyCheck library class and instances
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2696
* This library class provides platform specific services to support
dependency check during updating firmware image. Platform can perform
dependency check in platform specific manner by implementing its own
FmpDependencyCheckLib.
* Add FmpDependencyCheck instance to provide a sample of dependency
check. The sample instance only checks the dependency from capsule
image. The dependency from other FMP instances isn't checked here.
* Add NULL instance as an option to skip the dependency check.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <liming.gao@intel.com >
Cc: Sean Brogan <sean.brogan@microsoft.com >
Signed-off-by: Wei6 Xu <wei6.xu@intel.com >
Reviewed-by: Sean Brogan <sean.brogan@microsoft.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2020-05-15 06:11:44 +00:00
Wei6 Xu
a93bf06b1d
FmpDevicePkg: Add FmpDependency library class and BASE instance
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2696
This library provides services to evaluate Fmp capsule dependency
expression, validate dependency expression and get dependency
from firmware image.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <liming.gao@intel.com >
Cc: Sean Brogan <sean.brogan@microsoft.com >
Signed-off-by: Wei6 Xu <wei6.xu@intel.com >
Reviewed-by: Sean Brogan <sean.brogan@microsoft.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2020-05-15 06:11:44 +00:00
Sean Brogan
95d2883647
FmpDevicePkg: Fix spelling errors
...
https://bugzilla.tianocore.org/show_bug.cgi?id=2262
Cc: Liming Gao <liming.gao@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2019-10-23 08:08:08 -07:00
Eric Jin
c40f7cc7fd
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 >
2019-08-15 17:22:23 +08:00
Eric Jin
1f06aa24c2
FmpDEvicePkg/FmpDeviceLibNull: Implement new APIs
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1525
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 >
Reviewed-by: Eric Jin <eric.jin@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2019-08-14 12:29:38 +08:00
Eric Jin
91c230578c
FmpDevicePkg: Add UEFI_DRIVER support
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1525
Allow libs to be used with modules of type UEFI_DRIVE.
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 >
Reviewed-by: Eric Jin <eric.jin@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2019-08-14 12:29:28 +08:00
Michael D Kinney
bcef758cba
FmpDevicePkg: Replace BSD License with BSD+Patent License
...
https://bugzilla.tianocore.org/show_bug.cgi?id=1373
Replace BSD 2-Clause License with BSD+Patent License. This change is
based on the following emails:
https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html
https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html
RFCs with detailed process for the license change:
V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html
V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html
V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
2019-04-09 10:58:00 -07:00
Star Zeng
a6d73269b1
FmpDevicePkg: Fix code style issue
...
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2018-08-02 14:46:19 -07:00
Star Zeng
954175e513
FmpDevicePkg: Remove IPF
...
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2018-08-02 14:46:18 -07:00
Kinney, Michael D
403d4bcdec
FmpDevicePkg: Add library instances
...
https://bugzilla.tianocore.org/show_bug.cgi?id=922
Based on content from the following branch:
https://github.com/Microsoft/MS_UEFI/tree/share/MsCapsuleSupport/MsCapsuleUpdatePkg
Add library instances for FmpDeviceLib, CapsuleUpdatePolicyLib,
and FmpPayloadHeaderLib.
Library Classes
===============
* FmpDeviceLibNull - Non-functional template of the FmpDeviceLib
that can be used as a starting point for an FmpDeviceLib for
a specific firmware storage device.
* CapsuleUpdatePolicyLibNull - Functional template of the
CapsuleUpdatePolicyLib that can be used as a starting point
of a platform specific implementation.
* FmpPayloadHeaderLibV1 - Version 1 of the FmpPayloadHeaderLib.
This library is indented to be used "as is" with no need for
any device specific or platform specific changes.
Cc: Sean Brogan <sean.brogan@microsoft.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Star Zeng <star.zeng@intel.com >
2018-08-02 14:46:18 -07:00