]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/FirmwareManagement.h
MdePkg: Add ESRT Interface Definitions
[mirror_edk2.git] / MdePkg / Include / Protocol / FirmwareManagement.h
index 7ba6a7aa16c2c9f9e0fb8090f9438dd7540096b4..c4191a9fe27acc284d0586dafb10ffffe374f2b2 100644 (file)
@@ -8,7 +8,7 @@
   CheckImage(), GetPackageInfo(), and SetPackageInfo() shall return \r
   EFI_UNSUPPORTED if not supported by the driver.\r
     \r
-  Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2009 - 2015, 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
@@ -44,8 +44,8 @@ typedef struct {
   /// \r
   UINT8                            ImageIndex;\r
   ///\r
-  /// A unique number identifying the firmware image type.  \r
-  /// \r
+  /// A unique GUID identifying the firmware image type.\r
+  ///\r
   EFI_GUID                         ImageTypeId;\r
   /// \r
   /// A unique number identifying the firmware image. \r
@@ -91,6 +91,32 @@ typedef struct {
   /// present in version 2 or higher.\r
   ///\r
   UINT32                           LowestSupportedImageVersion;\r
+  ///\r
+  /// Describes the version that was last attempted to update. If no update attempted the\r
+  /// value will be 0. If the update attempted was improperly formatted and no version\r
+  /// number was available then the value will be zero. Only present in version 3 or higher.\r
+  UINT32                           LastAttemptVersion;\r
+  ///\r
+  /// Describes the status that was last attempted to update. If no update has been attempted\r
+  /// the value will be LAST_ATTEMPT_STATUS_SUCCESS. Only present in version 3 or higher.\r
+  ///\r
+  UINT32                           LastAttemptStatus;\r
+  ///\r
+  /// An optional number to identify the unique hardware instance within the system for\r
+  /// devices that may have multiple instances (Example: a plug in pci network card). This\r
+  /// number must be unique within the namespace of the ImageTypeId GUID and\r
+  /// ImageIndex. For FMP instances that have multiple descriptors for a single\r
+  /// hardware instance, all descriptors must have the same HardwareInstance value.\r
+  /// This number must be consistent between boots and should be based on some sort of\r
+  /// hardware identified unique id (serial number, etc) whenever possible. If a hardware\r
+  /// based number is not available the FMP provider may use some other characteristic\r
+  /// such as device path, bus/dev/function, slot num, etc for generating the\r
+  /// HardwareInstance. For implementations that will never have more than one\r
+  /// instance a zero can be used. A zero means the FMP provider is not able to determine a\r
+  /// unique hardware instance number or a hardware instance number is not needed. Only\r
+  /// present in version 3 or higher.\r
+  ///\r
+  UINT64                           HardwareInstance;\r
 } EFI_FIRMWARE_IMAGE_DESCRIPTOR;\r
 \r
 \r
@@ -137,7 +163,7 @@ typedef struct {
 ///\r
 /// Descriptor Version exposed by GetImageInfo() function\r
 ///\r
-#define   EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION   2\r
+#define   EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION   3\r
 \r
 \r
 ///\r