mirror of https://github.com/acidanthera/audk.git
MdePkg: Add definition for Fmp Capsule Dependency.
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2421 Add new definitions for Fmp Capsule dependency in UEFI Spec 2.8. 1. Extend the Last Attempt Status with a value to indicate the firmware update fails with unsatisfied dependencies. 2. Add the definition of dependency expression op-codes. 3. Add the definition of EFI_FIRMWARE_IMAGE_DEP which is an array of FMP dependency expression op-codes. 4. Extend the EFI_FIRMWARE_IMAGE_DESCRIPTOR with a pointer to the array of FMP dependency expression op-codes. 5. Extend the Image Attribute Definitions with IMAGE_ATTRIBUTE_DEPENDENCY to indicate that there is and EFI_FIRMWARE_IMAGE_DEP section associated with the image. 6. Update EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION to 4. Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <liming.gao@intel.com> Signed-off-by: Wei6 Xu <wei6.xu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
430743a1e8
commit
48997fe4d3
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
Guid & data structure used for EFI System Resource Table (ESRT)
|
||||
|
||||
Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2015 - 2020, Intel Corporation. All rights reserved.<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
@par Revision Reference:
|
||||
|
@ -34,14 +34,15 @@
|
|||
///
|
||||
/// Last Attempt Status Values
|
||||
///
|
||||
#define LAST_ATTEMPT_STATUS_SUCCESS 0x00000000
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_UNSUCCESSFUL 0x00000001
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_INSUFFICIENT_RESOURCES 0x00000002
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_INCORRECT_VERSION 0x00000003
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_INVALID_FORMAT 0x00000004
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_AUTH_ERROR 0x00000005
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_PWR_EVT_AC 0x00000006
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_PWR_EVT_BATT 0x00000007
|
||||
#define LAST_ATTEMPT_STATUS_SUCCESS 0x00000000
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_UNSUCCESSFUL 0x00000001
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_INSUFFICIENT_RESOURCES 0x00000002
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_INCORRECT_VERSION 0x00000003
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_INVALID_FORMAT 0x00000004
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_AUTH_ERROR 0x00000005
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_PWR_EVT_AC 0x00000006
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_PWR_EVT_BATT 0x00000007
|
||||
#define LAST_ATTEMPT_STATUS_ERROR_UNSATISFIED_DEPENDENCIES 0x00000008
|
||||
|
||||
typedef struct {
|
||||
///
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
CheckImage(), GetPackageInfo(), and SetPackageInfo() shall return
|
||||
EFI_UNSUPPORTED if not supported by the driver.
|
||||
|
||||
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2013 - 2014, Hewlett-Packard Development Company, L.P.<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
|
@ -28,6 +28,31 @@
|
|||
|
||||
typedef struct _EFI_FIRMWARE_MANAGEMENT_PROTOCOL EFI_FIRMWARE_MANAGEMENT_PROTOCOL;
|
||||
|
||||
///
|
||||
/// Dependency Expression Opcode
|
||||
///
|
||||
#define EFI_FMP_DEP_PUSH_GUID 0x00
|
||||
#define EFI_FMP_DEP_PUSH_VERSION 0x01
|
||||
#define EFI_FMP_DEP_VERSION_STR 0x02
|
||||
#define EFI_FMP_DEP_AND 0x03
|
||||
#define EFI_FMP_DEP_OR 0x04
|
||||
#define EFI_FMP_DEP_NOT 0x05
|
||||
#define EFI_FMP_DEP_TRUE 0x06
|
||||
#define EFI_FMP_DEP_FALSE 0x07
|
||||
#define EFI_FMP_DEP_EQ 0x08
|
||||
#define EFI_FMP_DEP_GT 0x09
|
||||
#define EFI_FMP_DEP_GTE 0x0A
|
||||
#define EFI_FMP_DEP_LT 0x0B
|
||||
#define EFI_FMP_DEP_LTE 0x0C
|
||||
#define EFI_FMP_DEP_END 0x0D
|
||||
|
||||
///
|
||||
/// Image Attribute - Dependency
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Dependencies[1];
|
||||
} EFI_FIRMWARE_IMAGE_DEP;
|
||||
|
||||
///
|
||||
/// EFI_FIRMWARE_IMAGE_DESCRIPTOR
|
||||
///
|
||||
|
@ -111,6 +136,7 @@ typedef struct {
|
|||
/// present in version 3 or higher.
|
||||
///
|
||||
UINT64 HardwareInstance;
|
||||
EFI_FIRMWARE_IMAGE_DEP *Dependencies;
|
||||
} EFI_FIRMWARE_IMAGE_DESCRIPTOR;
|
||||
|
||||
|
||||
|
@ -143,6 +169,11 @@ typedef struct {
|
|||
/// The attribute IMAGE_ATTRIBUTE_UEFI_IMAGE indicates that this image is an EFI compatible image.
|
||||
///
|
||||
#define IMAGE_ATTRIBUTE_UEFI_IMAGE 0x0000000000000010
|
||||
///
|
||||
/// The attribute IMAGE_ATTRIBUTE_DEPENDENCY indicates that there is an EFI_FIRMWARE_IMAGE_DEP
|
||||
/// section associated with the image.
|
||||
///
|
||||
#define IMAGE_ATTRIBUTE_DEPENDENCY 0x0000000000000020
|
||||
|
||||
|
||||
//
|
||||
|
@ -158,7 +189,7 @@ typedef struct {
|
|||
///
|
||||
/// Descriptor Version exposed by GetImageInfo() function
|
||||
///
|
||||
#define EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION 3
|
||||
#define EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION 4
|
||||
|
||||
|
||||
///
|
||||
|
|
Loading…
Reference in New Issue