/** @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
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
#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
#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
#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
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
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