]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Pi/PiHob.h
MdePkg/IndustryStandard/Ipmi: Use union for bitmap fields
[mirror_edk2.git] / MdePkg / Include / Pi / PiHob.h
index 9c65d5b12b37ffc971745c0e60fed3bb923a6c7e..4c90998bc03c1804e45e78361ef4065648b4b6d2 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   HOB related definitions in PI.\r
 \r
-Copyright (c) 2006 - 2011, 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.0\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
@@ -255,8 +256,16 @@ typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
 #define EFI_RESOURCE_ATTRIBUTE_INITIALIZED              0x00000002\r
 #define EFI_RESOURCE_ATTRIBUTE_TESTED                   0x00000004\r
 #define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED           0x00000080\r
+//\r
+// This is typically used as memory cacheability attribute today.\r
+// NOTE: Since PI spec 1.4, please use EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTED\r
+// as Physical write protected attribute, and EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED\r
+// means Memory cacheability attribute: The memory supports being programmed with\r
+// a writeprotected cacheable attribute.\r
+//\r
 #define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED          0x00000100\r
 #define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED      0x00000200\r
+#define EFI_RESOURCE_ATTRIBUTE_PERSISTENT               0x00800000\r
 //\r
 // The rest of the attributes are used to describe capabilities\r
 //\r
@@ -273,8 +282,27 @@ typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
 #define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO                0x00010000\r
 #define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED        0x00020000\r
 #define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTABLE         0x00100000\r
+//\r
+// This is typically used as memory cacheability attribute today.\r
+// NOTE: Since PI spec 1.4, please use EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE\r
+// as Memory capability attribute: The memory supports being protected from processor\r
+// writes, and EFI_RESOURCE_ATTRIBUTE_WRITE_PROTEC TABLE means Memory cacheability attribute:\r
+// The memory supports being programmed with a writeprotected cacheable attribute.\r
+//\r
 #define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTABLE        0x00200000\r
 #define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTABLE    0x00400000\r
+#define EFI_RESOURCE_ATTRIBUTE_PERSISTABLE              0x01000000\r
+\r
+#define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTED      0x00040000\r
+#define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE    0x00080000\r
+\r
+//\r
+// Physical memory relative reliability attribute. This\r
+// memory provides higher reliability relative to other\r
+// memory in the system. If all memory has the same\r
+// reliability, then this bit is not used.\r
+//\r
+#define EFI_RESOURCE_ATTRIBUTE_MORE_RELIABLE            0x02000000\r
 \r
 ///\r
 /// Describes the resource properties of all fixed,\r
@@ -372,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
@@ -442,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