summaryrefslogtreecommitdiffstats
path: root/MdePkg/Include/Pi/PiHob.h
diff options
context:
space:
mode:
Diffstat (limited to 'MdePkg/Include/Pi/PiHob.h')
-rw-r--r--MdePkg/Include/Pi/PiHob.h170
1 files changed, 83 insertions, 87 deletions
diff --git a/MdePkg/Include/Pi/PiHob.h b/MdePkg/Include/Pi/PiHob.h
index 62c07742a6..e9f0ab4309 100644
--- a/MdePkg/Include/Pi/PiHob.h
+++ b/MdePkg/Include/Pi/PiHob.h
@@ -48,11 +48,10 @@ typedef struct {
UINT32 Reserved;
} EFI_HOB_GENERIC_HEADER;
-
///
/// Value of version in EFI_HOB_HANDOFF_INFO_TABLE.
///
-#define EFI_HOB_HANDOFF_TABLE_VERSION 0x0009
+#define EFI_HOB_HANDOFF_TABLE_VERSION 0x0009
///
/// Contains general state information used by the HOB producer phase.
@@ -62,39 +61,39 @@ typedef struct {
///
/// The HOB generic header. Header.HobType = EFI_HOB_TYPE_HANDOFF.
///
- EFI_HOB_GENERIC_HEADER Header;
+ EFI_HOB_GENERIC_HEADER Header;
///
/// The version number pertaining to the PHIT HOB definition.
/// This value is four bytes in length to provide an 8-byte aligned entry
/// when it is combined with the 4-byte BootMode.
///
- UINT32 Version;
+ UINT32 Version;
///
/// The system boot mode as determined during the HOB producer phase.
///
- EFI_BOOT_MODE BootMode;
+ EFI_BOOT_MODE BootMode;
///
/// The highest address location of memory that is allocated for use by the HOB producer
/// phase. This address must be 4-KB aligned to meet page restrictions of UEFI.
///
- EFI_PHYSICAL_ADDRESS EfiMemoryTop;
+ EFI_PHYSICAL_ADDRESS EfiMemoryTop;
///
/// The lowest address location of memory that is allocated for use by the HOB producer phase.
///
- EFI_PHYSICAL_ADDRESS EfiMemoryBottom;
+ EFI_PHYSICAL_ADDRESS EfiMemoryBottom;
///
/// The highest address location of free memory that is currently available
/// for use by the HOB producer phase.
///
- EFI_PHYSICAL_ADDRESS EfiFreeMemoryTop;
+ EFI_PHYSICAL_ADDRESS EfiFreeMemoryTop;
///
/// The lowest address location of free memory that is available for use by the HOB producer phase.
///
- EFI_PHYSICAL_ADDRESS EfiFreeMemoryBottom;
+ EFI_PHYSICAL_ADDRESS EfiFreeMemoryBottom;
///
/// The end of the HOB list.
///
- EFI_PHYSICAL_ADDRESS EfiEndOfHobList;
+ EFI_PHYSICAL_ADDRESS EfiEndOfHobList;
} EFI_HOB_HANDOFF_INFO_TABLE;
///
@@ -110,31 +109,31 @@ typedef struct {
/// Type EFI_GUID is defined in InstallProtocolInterface() in the UEFI 2.0
/// specification.
///
- EFI_GUID Name;
+ EFI_GUID Name;
///
/// The base address of memory allocated by this HOB. Type
/// EFI_PHYSICAL_ADDRESS is defined in AllocatePages() in the UEFI 2.0
/// specification.
///
- EFI_PHYSICAL_ADDRESS MemoryBaseAddress;
+ EFI_PHYSICAL_ADDRESS MemoryBaseAddress;
///
/// The length in bytes of memory allocated by this HOB.
///
- UINT64 MemoryLength;
+ UINT64 MemoryLength;
///
/// Defines the type of memory allocated by this HOB. The memory type definition
/// follows the EFI_MEMORY_TYPE definition. Type EFI_MEMORY_TYPE is defined
/// in AllocatePages() in the UEFI 2.0 specification.
///
- EFI_MEMORY_TYPE MemoryType;
+ EFI_MEMORY_TYPE MemoryType;
///
/// Padding for Itanium processor family
///
- UINT8 Reserved[4];
+ UINT8 Reserved[4];
} EFI_HOB_MEMORY_ALLOCATION_HEADER;
///
@@ -146,19 +145,18 @@ typedef struct {
///
/// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
///
- EFI_HOB_GENERIC_HEADER Header;
+ EFI_HOB_GENERIC_HEADER Header;
///
/// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
/// various attributes of the logical memory allocation.
///
- EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
+ EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
//
// Additional data pertaining to the "Name" Guid memory
// may go here.
//
} EFI_HOB_MEMORY_ALLOCATION;
-
///
/// Describes the memory stack that is produced by the HOB producer
/// phase and upon which all post-memory-installed executable
@@ -168,12 +166,12 @@ typedef struct {
///
/// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
///
- EFI_HOB_GENERIC_HEADER Header;
+ EFI_HOB_GENERIC_HEADER Header;
///
/// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
/// various attributes of the logical memory allocation.
///
- EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
+ EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
} EFI_HOB_MEMORY_ALLOCATION_STACK;
///
@@ -186,12 +184,12 @@ typedef struct {
///
/// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
///
- EFI_HOB_GENERIC_HEADER Header;
+ EFI_HOB_GENERIC_HEADER Header;
///
/// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
/// various attributes of the logical memory allocation.
///
- EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
+ EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
} EFI_HOB_MEMORY_ALLOCATION_BSP_STORE;
///
@@ -201,22 +199,22 @@ typedef struct {
///
/// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
///
- EFI_HOB_GENERIC_HEADER Header;
+ EFI_HOB_GENERIC_HEADER Header;
///
/// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
/// various attributes of the logical memory allocation.
///
- EFI_HOB_MEMORY_ALLOCATION_HEADER MemoryAllocationHeader;
+ EFI_HOB_MEMORY_ALLOCATION_HEADER MemoryAllocationHeader;
///
/// The GUID specifying the values of the firmware file system name
/// that contains the HOB consumer phase component.
///
- EFI_GUID ModuleName;
+ EFI_GUID ModuleName;
///
/// The address of the memory-mapped firmware volume
/// that contains the HOB consumer phase firmware file.
///
- EFI_PHYSICAL_ADDRESS EntryPoint;
+ EFI_PHYSICAL_ADDRESS EntryPoint;
} EFI_HOB_MEMORY_ALLOCATION_MODULE;
///
@@ -246,10 +244,10 @@ typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
//
// The following attributes are used to describe settings
//
-#define EFI_RESOURCE_ATTRIBUTE_PRESENT 0x00000001
-#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED 0x00000002
-#define EFI_RESOURCE_ATTRIBUTE_TESTED 0x00000004
-#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED 0x00000080
+#define EFI_RESOURCE_ATTRIBUTE_PRESENT 0x00000001
+#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED 0x00000002
+#define EFI_RESOURCE_ATTRIBUTE_TESTED 0x00000004
+#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED 0x00000080
//
// This is typically used as memory cacheability attribute today.
// NOTE: Since PI spec 1.4, please use EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTED
@@ -257,9 +255,9 @@ typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
// means Memory cacheability attribute: The memory supports being programmed with
// a writeprotected cacheable attribute.
//
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED 0x00000100
-#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED 0x00000200
-#define EFI_RESOURCE_ATTRIBUTE_PERSISTENT 0x00800000
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED 0x00000100
+#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED 0x00000200
+#define EFI_RESOURCE_ATTRIBUTE_PERSISTENT 0x00800000
//
// The rest of the attributes are used to describe capabilities
//
@@ -283,12 +281,12 @@ typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
// writes, and EFI_RESOURCE_ATTRIBUTE_WRITE_PROTEC TABLE means Memory cacheability attribute:
// The memory supports being programmed with a writeprotected cacheable attribute.
//
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTABLE 0x00200000
-#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTABLE 0x00400000
-#define EFI_RESOURCE_ATTRIBUTE_PERSISTABLE 0x01000000
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTABLE 0x00200000
+#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTABLE 0x00400000
+#define EFI_RESOURCE_ATTRIBUTE_PERSISTABLE 0x01000000
-#define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTED 0x00040000
-#define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE 0x00080000
+#define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTED 0x00040000
+#define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE 0x00080000
//
// Physical memory relative reliability attribute. This
@@ -296,7 +294,7 @@ typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
// memory in the system. If all memory has the same
// reliability, then this bit is not used.
//
-#define EFI_RESOURCE_ATTRIBUTE_MORE_RELIABLE 0x02000000
+#define EFI_RESOURCE_ATTRIBUTE_MORE_RELIABLE 0x02000000
///
/// Describes the resource properties of all fixed,
@@ -307,28 +305,28 @@ typedef struct {
///
/// The HOB generic header. Header.HobType = EFI_HOB_TYPE_RESOURCE_DESCRIPTOR.
///
- EFI_HOB_GENERIC_HEADER Header;
+ EFI_HOB_GENERIC_HEADER Header;
///
/// A GUID representing the owner of the resource. This GUID is used by HOB
/// consumer phase components to correlate device ownership of a resource.
///
- EFI_GUID Owner;
+ EFI_GUID Owner;
///
/// The resource type enumeration as defined by EFI_RESOURCE_TYPE.
///
- EFI_RESOURCE_TYPE ResourceType;
+ EFI_RESOURCE_TYPE ResourceType;
///
/// Resource attributes as defined by EFI_RESOURCE_ATTRIBUTE_TYPE.
///
- EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
+ EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
///
/// The physical start address of the resource region.
///
- EFI_PHYSICAL_ADDRESS PhysicalStart;
+ EFI_PHYSICAL_ADDRESS PhysicalStart;
///
/// The number of bytes of the resource region.
///
- UINT64 ResourceLength;
+ UINT64 ResourceLength;
} EFI_HOB_RESOURCE_DESCRIPTOR;
///
@@ -339,11 +337,11 @@ typedef struct {
///
/// The HOB generic header. Header.HobType = EFI_HOB_TYPE_GUID_EXTENSION.
///
- EFI_HOB_GENERIC_HEADER Header;
+ EFI_HOB_GENERIC_HEADER Header;
///
/// A GUID that defines the contents of this HOB.
///
- EFI_GUID Name;
+ EFI_GUID Name;
//
// Guid specific data goes here
//
@@ -356,15 +354,15 @@ typedef struct {
///
/// The HOB generic header. Header.HobType = EFI_HOB_TYPE_FV.
///
- EFI_HOB_GENERIC_HEADER Header;
+ EFI_HOB_GENERIC_HEADER Header;
///
/// The physical memory-mapped base address of the firmware volume.
///
- EFI_PHYSICAL_ADDRESS BaseAddress;
+ EFI_PHYSICAL_ADDRESS BaseAddress;
///
/// The length in bytes of the firmware volume.
///
- UINT64 Length;
+ UINT64 Length;
} EFI_HOB_FIRMWARE_VOLUME;
///
@@ -375,23 +373,23 @@ typedef struct {
///
/// The HOB generic header. Header.HobType = EFI_HOB_TYPE_FV2.
///
- EFI_HOB_GENERIC_HEADER Header;
+ EFI_HOB_GENERIC_HEADER Header;
///
/// The physical memory-mapped base address of the firmware volume.
///
- EFI_PHYSICAL_ADDRESS BaseAddress;
+ EFI_PHYSICAL_ADDRESS BaseAddress;
///
/// The length in bytes of the firmware volume.
///
- UINT64 Length;
+ UINT64 Length;
///
/// The name of the firmware volume.
///
- EFI_GUID FvName;
+ EFI_GUID FvName;
///
/// The name of the firmware file that contained this firmware volume.
///
- EFI_GUID FileName;
+ EFI_GUID FileName;
} EFI_HOB_FIRMWARE_VOLUME2;
///
@@ -402,34 +400,34 @@ typedef struct {
///
/// The HOB generic header. Header.HobType = EFI_HOB_TYPE_FV3.
///
- EFI_HOB_GENERIC_HEADER Header;
+ EFI_HOB_GENERIC_HEADER Header;
///
/// The physical memory-mapped base address of the firmware volume.
///
- EFI_PHYSICAL_ADDRESS BaseAddress;
+ EFI_PHYSICAL_ADDRESS BaseAddress;
///
/// The length in bytes of the firmware volume.
///
- UINT64 Length;
+ UINT64 Length;
///
/// The authentication status.
///
- UINT32 AuthenticationStatus;
+ UINT32 AuthenticationStatus;
///
/// TRUE if the FV was extracted as a file within another firmware volume.
/// FALSE otherwise.
///
- BOOLEAN ExtractedFv;
+ BOOLEAN ExtractedFv;
///
/// The name of the firmware volume.
/// Valid only if IsExtractedFv is TRUE.
///
- EFI_GUID FvName;
+ EFI_GUID FvName;
///
/// The name of the firmware file that contained this firmware volume.
/// Valid only if IsExtractedFv is TRUE.
///
- EFI_GUID FileName;
+ EFI_GUID FileName;
} EFI_HOB_FIRMWARE_VOLUME3;
///
@@ -439,22 +437,21 @@ typedef struct {
///
/// The HOB generic header. Header.HobType = EFI_HOB_TYPE_CPU.
///
- EFI_HOB_GENERIC_HEADER Header;
+ EFI_HOB_GENERIC_HEADER Header;
///
/// Identifies the maximum physical memory addressability of the processor.
///
- UINT8 SizeOfMemorySpace;
+ UINT8 SizeOfMemorySpace;
///
/// Identifies the maximum physical I/O addressability of the processor.
///
- UINT8 SizeOfIoSpace;
+ UINT8 SizeOfIoSpace;
///
/// This field will always be set to zero.
///
- UINT8 Reserved[6];
+ UINT8 Reserved[6];
} EFI_HOB_CPU;
-
///
/// Describes pool memory allocations.
///
@@ -462,7 +459,7 @@ typedef struct {
///
/// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_POOL.
///
- EFI_HOB_GENERIC_HEADER Header;
+ EFI_HOB_GENERIC_HEADER Header;
} EFI_HOB_MEMORY_POOL;
///
@@ -476,37 +473,36 @@ typedef struct {
///
/// The HOB generic header where Header.HobType = EFI_HOB_TYPE_UEFI_CAPSULE.
///
- EFI_HOB_GENERIC_HEADER Header;
+ EFI_HOB_GENERIC_HEADER Header;
///
/// The physical memory-mapped base address of an UEFI capsule. This value is set to
/// point to the base of the contiguous memory of the UEFI capsule.
/// The length of the contiguous memory in bytes.
///
- EFI_PHYSICAL_ADDRESS BaseAddress;
- UINT64 Length;
+ EFI_PHYSICAL_ADDRESS BaseAddress;
+ UINT64 Length;
} EFI_HOB_UEFI_CAPSULE;
///
/// Union of all the possible HOB Types.
///
typedef union {
- EFI_HOB_GENERIC_HEADER *Header;
- EFI_HOB_HANDOFF_INFO_TABLE *HandoffInformationTable;
- EFI_HOB_MEMORY_ALLOCATION *MemoryAllocation;
- EFI_HOB_MEMORY_ALLOCATION_BSP_STORE *MemoryAllocationBspStore;
- EFI_HOB_MEMORY_ALLOCATION_STACK *MemoryAllocationStack;
- EFI_HOB_MEMORY_ALLOCATION_MODULE *MemoryAllocationModule;
- EFI_HOB_RESOURCE_DESCRIPTOR *ResourceDescriptor;
- EFI_HOB_GUID_TYPE *Guid;
- EFI_HOB_FIRMWARE_VOLUME *FirmwareVolume;
- EFI_HOB_FIRMWARE_VOLUME2 *FirmwareVolume2;
- EFI_HOB_FIRMWARE_VOLUME3 *FirmwareVolume3;
- EFI_HOB_CPU *Cpu;
- EFI_HOB_MEMORY_POOL *Pool;
- EFI_HOB_UEFI_CAPSULE *Capsule;
- UINT8 *Raw;
+ EFI_HOB_GENERIC_HEADER *Header;
+ EFI_HOB_HANDOFF_INFO_TABLE *HandoffInformationTable;
+ EFI_HOB_MEMORY_ALLOCATION *MemoryAllocation;
+ EFI_HOB_MEMORY_ALLOCATION_BSP_STORE *MemoryAllocationBspStore;
+ EFI_HOB_MEMORY_ALLOCATION_STACK *MemoryAllocationStack;
+ EFI_HOB_MEMORY_ALLOCATION_MODULE *MemoryAllocationModule;
+ EFI_HOB_RESOURCE_DESCRIPTOR *ResourceDescriptor;
+ EFI_HOB_GUID_TYPE *Guid;
+ EFI_HOB_FIRMWARE_VOLUME *FirmwareVolume;
+ EFI_HOB_FIRMWARE_VOLUME2 *FirmwareVolume2;
+ EFI_HOB_FIRMWARE_VOLUME3 *FirmwareVolume3;
+ EFI_HOB_CPU *Cpu;
+ EFI_HOB_MEMORY_POOL *Pool;
+ EFI_HOB_UEFI_CAPSULE *Capsule;
+ UINT8 *Raw;
} EFI_PEI_HOB_POINTERS;
-
#endif