]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/FirmwareManagement.h
Add IMAGE_ATTRIBUTE_UEFI_IMAGE definition from UEFI 2.4 specification.
[mirror_edk2.git] / MdePkg / Include / Protocol / FirmwareManagement.h
index d9470004a0e3613e662f1a8613087c60651324b8..7ba6a7aa16c2c9f9e0fb8090f9438dd7540096b4 100644 (file)
@@ -7,9 +7,10 @@
   GetImageInfo() is the only required function. GetImage(), SetImage(), \r
   CheckImage(), GetPackageInfo(), and SetPackageInfo() shall return \r
   EFI_UNSUPPORTED if not supported by the driver.\r
-  \r
-  Copyright (c) 2009, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
+    \r
+  Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2013 - 2014, Hewlett-Packard Development Company, L.P.<BR>  \r
+  This program and the accompanying materials                          \r
   are licensed and made available under the terms and conditions of the BSD License         \r
   which accompanies this distribution.  The full text of the license may be found at        \r
   http://opensource.org/licenses/bsd-license.php                                            \r
@@ -51,7 +52,7 @@ typedef struct {
   /// \r
   UINT64                           ImageId;\r
   /// \r
-  /// A pointer to a null-terminated Unicode string representing the firmware image name.  \r
+  /// A pointer to a null-terminated string representing the firmware image name.  \r
   /// \r
   CHAR16                           *ImageIdName;\r
   /// \r
@@ -60,7 +61,7 @@ typedef struct {
   /// \r
   UINT32                           Version;\r
   /// \r
-  /// A pointer to a null-terminated Unicode string representing the firmware image version name.\r
+  /// A pointer to a null-terminated string representing the firmware image version name.\r
   /// \r
   CHAR16                           *VersionName;\r
   /// \r
@@ -85,6 +86,11 @@ typedef struct {
   /// values of this parameter.\r
   /// \r
   UINT64                           Compatibilities;\r
+  ///\r
+  /// Describes the lowest ImageDescriptor version that the device will accept. Only\r
+  /// present in version 2 or higher.\r
+  ///\r
+  UINT32                           LowestSupportedImageVersion;\r
 } EFI_FIRMWARE_IMAGE_DESCRIPTOR;\r
 \r
 \r
@@ -113,6 +119,10 @@ typedef struct {
 /// This distinguishes firmware images in a device that supports redundant images.  \r
 /// \r
 #define    IMAGE_ATTRIBUTE_IN_USE                  0x0000000000000008\r
+///\r
+/// The attribute IMAGE_ATTRIBUTE_UEFI_IMAGE indicates that this image is an EFI compatible image.\r
+///\r
+#define    IMAGE_ATTRIBUTE_UEFI_IMAGE              0x0000000000000010\r
 \r
 \r
 //\r
@@ -125,9 +135,9 @@ typedef struct {
 #define   IMAGE_COMPATIBILITY_CHECK_SUPPORTED      0x0000000000000001\r
 \r
 ///\r
-/// Descriptor Version\r
+/// Descriptor Version exposed by GetImageInfo() function\r
 ///\r
-#define   EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION   1\r
+#define   EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION   2\r
 \r
 \r
 ///\r
@@ -143,6 +153,8 @@ typedef struct {
   /// Provides the authorization for the firmware image operations.  It is a signature across \r
   /// the image data and the Monotonic Count value.  Caller uses the private key that is \r
   /// associated with a public key that has been provisioned via the key exchange.  \r
+  /// Because this is defined as a signature, WIN_CERTIFICATE_UEFI_GUID.CertType must\r
+  /// be EFI_CERT_TYPE_PKCS7_GUID.\r
   ///\r
   WIN_CERTIFICATE_UEFI_GUID               AuthInfo;\r
 } EFI_FIRMWARE_IMAGE_AUTHENTICATION;\r
@@ -239,7 +251,7 @@ EFI_STATUS
                                      0xFFFFFFFF. A value of 0xFFFFFFFE indicates that package version comparison\r
                                      is to be performed using PackageVersionName. A value of 0xFFFFFFFD indicates\r
                                      that package version update is in progress.\r
-  @param[out]     PackageVersionName A pointer to a pointer to a null-terminated Unicode string representing the\r
+  @param[out]     PackageVersionName A pointer to a pointer to a null-terminated string representing the\r
                                      package version name. The buffer is allocated by this function with \r
                                      AllocatePool(), and it is the caller's responsibility to free it with a call\r
                                      to FreePool().\r
@@ -330,7 +342,7 @@ EFI_STATUS
   @param[in]  VendorCode         This enables vendor to implement vendor-specific firmware image update policy.  \r
                                  Null indicates the caller did not specify the policy or use the default policy.\r
   @param[in]  Progress           A function used by the driver to report the progress of the firmware update.\r
-  @param[out] AbortReason        A pointer to a pointer to a null-terminated Unicode string providing more\r
+  @param[out] AbortReason        A pointer to a pointer to a null-terminated string providing more\r
                                  details for the aborted operation. The buffer is allocated by this function \r
                                  with AllocatePool(), and it is the caller's responsibility to free it with a\r
                                  call to FreePool().\r
@@ -396,7 +408,7 @@ EFI_STATUS
                                        0xFFFFFFFF. A value of 0xFFFFFFFE indicates that package version\r
                                        comparison is to be performed using PackageVersionName. A value of\r
                                        0xFFFFFFFD indicates that package version update is in progress.\r
-  @param[out] PackageVersionName       A pointer to a pointer to a null-terminated Unicode string representing\r
+  @param[out] PackageVersionName       A pointer to a pointer to a null-terminated string representing\r
                                        the package version name. The buffer is allocated by this function with\r
                                        AllocatePool(), and it is the caller's responsibility to free it with a\r
                                        call to FreePool().\r