/** @file\r
HOB related definitions in PI.\r
\r
-Copyright (c) 2006 - 2011, 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
-http://opensource.org/licenses/bsd-license.php.\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\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