]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdePkg PiHob.h: Add FV3 HOB definitions
authorStar Zeng <star.zeng@intel.com>
Sat, 30 Sep 2017 07:03:34 +0000 (15:03 +0800)
committerStar Zeng <star.zeng@intel.com>
Tue, 10 Oct 2017 12:54:27 +0000 (20:54 +0800)
Follow PI 1.6 spec to add FV3 HOB definitions

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
MdePkg/Include/Pi/PiHob.h

index 29467e79d59c2fc28d22bda323b01104bfe6ddb3..4c90998bc03c1804e45e78361ef4065648b4b6d2 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   HOB related definitions in PI.\r
 \r
-Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available under\r
 the terms and conditions of the BSD License that accompanies this distribution.\r
 The full text of the license may be found at\r
@@ -11,7 +11,7 @@ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
   @par Revision Reference:\r
-  PI Version 1.4a\r
+  PI Version 1.6\r
 \r
 **/\r
 \r
@@ -31,6 +31,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define EFI_HOB_TYPE_FV2                  0x0009\r
 #define EFI_HOB_TYPE_LOAD_PEIM_UNUSED     0x000A\r
 #define EFI_HOB_TYPE_UEFI_CAPSULE         0x000B\r
+#define EFI_HOB_TYPE_FV3                  0x000C\r
 #define EFI_HOB_TYPE_UNUSED               0xFFFE\r
 #define EFI_HOB_TYPE_END_OF_HOB_LIST      0xFFFF\r
 \r
@@ -399,6 +400,43 @@ typedef struct {
   EFI_GUID                FileName;\r
 } EFI_HOB_FIRMWARE_VOLUME2;\r
 \r
+///\r
+/// Details the location of a firmware volume that was extracted\r
+/// from a file within another firmware volume.\r
+///\r
+typedef struct {\r
+  ///\r
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_FV3.\r
+  ///\r
+  EFI_HOB_GENERIC_HEADER  Header;\r
+  ///\r
+  /// The physical memory-mapped base address of the firmware volume.\r
+  ///\r
+  EFI_PHYSICAL_ADDRESS    BaseAddress;\r
+  ///\r
+  /// The length in bytes of the firmware volume.\r
+  ///\r
+  UINT64                  Length;\r
+  ///\r
+  /// The authentication status.\r
+  ///\r
+  UINT32                  AuthenticationStatus;\r
+  ///\r
+  /// TRUE if the FV was extracted as a file within another firmware volume.\r
+  /// FALSE otherwise.\r
+  ///\r
+  BOOLEAN                 ExtractedFv;\r
+  ///\r
+  /// The name of the firmware volume.\r
+  /// Valid only if IsExtractedFv is TRUE.\r
+  ///\r
+  EFI_GUID                FvName;\r
+  ///\r
+  /// The name of the firmware file that contained this firmware volume.\r
+  /// Valid only if IsExtractedFv is TRUE.\r
+  ///\r
+  EFI_GUID                FileName;\r
+} EFI_HOB_FIRMWARE_VOLUME3;\r
 \r
 ///\r
 /// Describes processor information, such as address space and I/O space capabilities.\r
@@ -469,6 +507,7 @@ typedef union {
   EFI_HOB_GUID_TYPE                   *Guid;\r
   EFI_HOB_FIRMWARE_VOLUME             *FirmwareVolume;\r
   EFI_HOB_FIRMWARE_VOLUME2            *FirmwareVolume2;\r
+  EFI_HOB_FIRMWARE_VOLUME3            *FirmwareVolume3;\r
   EFI_HOB_CPU                         *Cpu;\r
   EFI_HOB_MEMORY_POOL                 *Pool;\r
   EFI_HOB_UEFI_CAPSULE                *Capsule;\r