Changeset 99404 in vbox for trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Pi/PiHob.h
- Timestamp:
- Apr 14, 2023 3:17:44 PM (2 years ago)
- svn:sync-xref-src-repo-rev:
- 156854
- Location:
- trunk/src/VBox/Devices/EFI/FirmwareNew
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/FirmwareNew
-
Property svn:mergeinfo
changed from (toggle deleted branches)
to (toggle deleted branches)/vendor/edk2/current 103735-103757,103769-103776,129194-145445 /vendor/edk2/current 103735-103757,103769-103776,129194-156846
-
Property svn:mergeinfo
changed from (toggle deleted branches)
-
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Pi/PiHob.h
r80721 r99404 49 49 } EFI_HOB_GENERIC_HEADER; 50 50 51 52 51 /// 53 52 /// Value of version in EFI_HOB_HANDOFF_INFO_TABLE. 54 53 /// 55 #define EFI_HOB_HANDOFF_TABLE_VERSION 0x000954 #define EFI_HOB_HANDOFF_TABLE_VERSION 0x0009 56 55 57 56 /// … … 63 62 /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_HANDOFF. 64 63 /// 65 EFI_HOB_GENERIC_HEADER Header;64 EFI_HOB_GENERIC_HEADER Header; 66 65 /// 67 66 /// The version number pertaining to the PHIT HOB definition. … … 69 68 /// when it is combined with the 4-byte BootMode. 70 69 /// 71 UINT32 Version;70 UINT32 Version; 72 71 /// 73 72 /// The system boot mode as determined during the HOB producer phase. 74 73 /// 75 EFI_BOOT_MODE BootMode;74 EFI_BOOT_MODE BootMode; 76 75 /// 77 76 /// The highest address location of memory that is allocated for use by the HOB producer 78 77 /// phase. This address must be 4-KB aligned to meet page restrictions of UEFI. 79 78 /// 80 EFI_PHYSICAL_ADDRESS EfiMemoryTop;79 EFI_PHYSICAL_ADDRESS EfiMemoryTop; 81 80 /// 82 81 /// The lowest address location of memory that is allocated for use by the HOB producer phase. 83 82 /// 84 EFI_PHYSICAL_ADDRESS EfiMemoryBottom;83 EFI_PHYSICAL_ADDRESS EfiMemoryBottom; 85 84 /// 86 85 /// The highest address location of free memory that is currently available 87 86 /// for use by the HOB producer phase. 88 87 /// 89 EFI_PHYSICAL_ADDRESS EfiFreeMemoryTop;88 EFI_PHYSICAL_ADDRESS EfiFreeMemoryTop; 90 89 /// 91 90 /// The lowest address location of free memory that is available for use by the HOB producer phase. 92 91 /// 93 EFI_PHYSICAL_ADDRESS EfiFreeMemoryBottom;92 EFI_PHYSICAL_ADDRESS EfiFreeMemoryBottom; 94 93 /// 95 94 /// The end of the HOB list. 96 95 /// 97 EFI_PHYSICAL_ADDRESS EfiEndOfHobList;96 EFI_PHYSICAL_ADDRESS EfiEndOfHobList; 98 97 } EFI_HOB_HANDOFF_INFO_TABLE; 99 98 … … 111 110 /// specification. 112 111 /// 113 EFI_GUID Name;112 EFI_GUID Name; 114 113 115 114 /// … … 118 117 /// specification. 119 118 /// 120 EFI_PHYSICAL_ADDRESS MemoryBaseAddress;119 EFI_PHYSICAL_ADDRESS MemoryBaseAddress; 121 120 122 121 /// 123 122 /// The length in bytes of memory allocated by this HOB. 124 123 /// 125 UINT64 MemoryLength;124 UINT64 MemoryLength; 126 125 127 126 /// … … 130 129 /// in AllocatePages() in the UEFI 2.0 specification. 131 130 /// 132 EFI_MEMORY_TYPE MemoryType;131 EFI_MEMORY_TYPE MemoryType; 133 132 134 133 /// 135 134 /// Padding for Itanium processor family 136 135 /// 137 UINT8 Reserved[4];136 UINT8 Reserved[4]; 138 137 } EFI_HOB_MEMORY_ALLOCATION_HEADER; 139 138 … … 147 146 /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION. 148 147 /// 149 EFI_HOB_GENERIC_HEADER Header;148 EFI_HOB_GENERIC_HEADER Header; 150 149 /// 151 150 /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the 152 151 /// various attributes of the logical memory allocation. 153 152 /// 154 EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;153 EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor; 155 154 // 156 155 // Additional data pertaining to the "Name" Guid memory … … 159 158 } EFI_HOB_MEMORY_ALLOCATION; 160 159 161 162 160 /// 163 161 /// Describes the memory stack that is produced by the HOB producer … … 169 167 /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION. 170 168 /// 171 EFI_HOB_GENERIC_HEADER Header;169 EFI_HOB_GENERIC_HEADER Header; 172 170 /// 173 171 /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the 174 172 /// various attributes of the logical memory allocation. 175 173 /// 176 EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;174 EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor; 177 175 } EFI_HOB_MEMORY_ALLOCATION_STACK; 178 176 … … 187 185 /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION. 188 186 /// 189 EFI_HOB_GENERIC_HEADER Header;187 EFI_HOB_GENERIC_HEADER Header; 190 188 /// 191 189 /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the 192 190 /// various attributes of the logical memory allocation. 193 191 /// 194 EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;192 EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor; 195 193 } EFI_HOB_MEMORY_ALLOCATION_BSP_STORE; 196 194 … … 202 200 /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION. 203 201 /// 204 EFI_HOB_GENERIC_HEADER Header;202 EFI_HOB_GENERIC_HEADER Header; 205 203 /// 206 204 /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the 207 205 /// various attributes of the logical memory allocation. 208 206 /// 209 EFI_HOB_MEMORY_ALLOCATION_HEADER MemoryAllocationHeader;207 EFI_HOB_MEMORY_ALLOCATION_HEADER MemoryAllocationHeader; 210 208 /// 211 209 /// The GUID specifying the values of the firmware file system name 212 210 /// that contains the HOB consumer phase component. 213 211 /// 214 EFI_GUID ModuleName;212 EFI_GUID ModuleName; 215 213 /// 216 214 /// The address of the memory-mapped firmware volume 217 215 /// that contains the HOB consumer phase firmware file. 218 216 /// 219 EFI_PHYSICAL_ADDRESS EntryPoint;217 EFI_PHYSICAL_ADDRESS EntryPoint; 220 218 } EFI_HOB_MEMORY_ALLOCATION_MODULE; 221 219 … … 235 233 #define EFI_RESOURCE_MEMORY_RESERVED 0x00000005 236 234 #define EFI_RESOURCE_IO_RESERVED 0x00000006 237 #define EFI_RESOURCE_MAX_MEMORY_TYPE 0x00000007 235 // 236 // BZ3937_EFI_RESOURCE_MEMORY_UNACCEPTED is defined for unaccepted memory. 237 // But this defitinion has not been officially in the PI spec. Base 238 // on the code-first we define BZ3937_EFI_RESOURCE_MEMORY_UNACCEPTED at 239 // MdeModulePkg/Include/Pi/PrePiHob.h and update EFI_RESOURCE_MAX_MEMORY_TYPE 240 // to 8. After BZ3937_EFI_RESOURCE_MEMORY_UNACCEPTED is officially published 241 // in PI spec, we will re-visit here. 242 // 243 // #define BZ3937_EFI_RESOURCE_MEMORY_UNACCEPTED 0x00000007 244 #define EFI_RESOURCE_MAX_MEMORY_TYPE 0x00000008 238 245 239 246 /// … … 247 254 // The following attributes are used to describe settings 248 255 // 249 #define EFI_RESOURCE_ATTRIBUTE_PRESENT 250 #define EFI_RESOURCE_ATTRIBUTE_INITIALIZED 251 #define EFI_RESOURCE_ATTRIBUTE_TESTED 252 #define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED 256 #define EFI_RESOURCE_ATTRIBUTE_PRESENT 0x00000001 257 #define EFI_RESOURCE_ATTRIBUTE_INITIALIZED 0x00000002 258 #define EFI_RESOURCE_ATTRIBUTE_TESTED 0x00000004 259 #define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED 0x00000080 253 260 // 254 261 // This is typically used as memory cacheability attribute today. … … 258 265 // a writeprotected cacheable attribute. 259 266 // 260 #define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED 261 #define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED 262 #define EFI_RESOURCE_ATTRIBUTE_PERSISTENT 267 #define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED 0x00000100 268 #define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED 0x00000200 269 #define EFI_RESOURCE_ATTRIBUTE_PERSISTENT 0x00800000 263 270 // 264 271 // The rest of the attributes are used to describe capabilities … … 284 291 // The memory supports being programmed with a writeprotected cacheable attribute. 285 292 // 286 #define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTABLE 287 #define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTABLE 288 #define EFI_RESOURCE_ATTRIBUTE_PERSISTABLE 289 290 #define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTED 291 #define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE 293 #define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTABLE 0x00200000 294 #define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTABLE 0x00400000 295 #define EFI_RESOURCE_ATTRIBUTE_PERSISTABLE 0x01000000 296 297 #define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTED 0x00040000 298 #define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE 0x00080000 292 299 293 300 // … … 297 304 // reliability, then this bit is not used. 298 305 // 299 #define EFI_RESOURCE_ATTRIBUTE_MORE_RELIABLE 306 #define EFI_RESOURCE_ATTRIBUTE_MORE_RELIABLE 0x02000000 300 307 301 308 /// … … 308 315 /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_RESOURCE_DESCRIPTOR. 309 316 /// 310 EFI_HOB_GENERIC_HEADER Header;317 EFI_HOB_GENERIC_HEADER Header; 311 318 /// 312 319 /// A GUID representing the owner of the resource. This GUID is used by HOB 313 320 /// consumer phase components to correlate device ownership of a resource. 314 321 /// 315 EFI_GUID Owner;322 EFI_GUID Owner; 316 323 /// 317 324 /// The resource type enumeration as defined by EFI_RESOURCE_TYPE. 318 325 /// 319 EFI_RESOURCE_TYPE ResourceType;326 EFI_RESOURCE_TYPE ResourceType; 320 327 /// 321 328 /// Resource attributes as defined by EFI_RESOURCE_ATTRIBUTE_TYPE. 322 329 /// 323 EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;330 EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute; 324 331 /// 325 332 /// The physical start address of the resource region. 326 333 /// 327 EFI_PHYSICAL_ADDRESS PhysicalStart;334 EFI_PHYSICAL_ADDRESS PhysicalStart; 328 335 /// 329 336 /// The number of bytes of the resource region. 330 337 /// 331 UINT64 ResourceLength;338 UINT64 ResourceLength; 332 339 } EFI_HOB_RESOURCE_DESCRIPTOR; 333 340 … … 340 347 /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_GUID_EXTENSION. 341 348 /// 342 EFI_HOB_GENERIC_HEADER 349 EFI_HOB_GENERIC_HEADER Header; 343 350 /// 344 351 /// A GUID that defines the contents of this HOB. 345 352 /// 346 EFI_GUID 353 EFI_GUID Name; 347 354 // 348 355 // Guid specific data goes here … … 357 364 /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_FV. 358 365 /// 359 EFI_HOB_GENERIC_HEADER Header;366 EFI_HOB_GENERIC_HEADER Header; 360 367 /// 361 368 /// The physical memory-mapped base address of the firmware volume. 362 369 /// 363 EFI_PHYSICAL_ADDRESS BaseAddress;370 EFI_PHYSICAL_ADDRESS BaseAddress; 364 371 /// 365 372 /// The length in bytes of the firmware volume. 366 373 /// 367 UINT64 Length;374 UINT64 Length; 368 375 } EFI_HOB_FIRMWARE_VOLUME; 369 376 … … 376 383 /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_FV2. 377 384 /// 378 EFI_HOB_GENERIC_HEADER Header;385 EFI_HOB_GENERIC_HEADER Header; 379 386 /// 380 387 /// The physical memory-mapped base address of the firmware volume. 381 388 /// 382 EFI_PHYSICAL_ADDRESS BaseAddress;389 EFI_PHYSICAL_ADDRESS BaseAddress; 383 390 /// 384 391 /// The length in bytes of the firmware volume. 385 392 /// 386 UINT64 Length;393 UINT64 Length; 387 394 /// 388 395 /// The name of the firmware volume. 389 396 /// 390 EFI_GUID FvName;397 EFI_GUID FvName; 391 398 /// 392 399 /// The name of the firmware file that contained this firmware volume. 393 400 /// 394 EFI_GUID FileName;401 EFI_GUID FileName; 395 402 } EFI_HOB_FIRMWARE_VOLUME2; 396 403 … … 403 410 /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_FV3. 404 411 /// 405 EFI_HOB_GENERIC_HEADER Header;412 EFI_HOB_GENERIC_HEADER Header; 406 413 /// 407 414 /// The physical memory-mapped base address of the firmware volume. 408 415 /// 409 EFI_PHYSICAL_ADDRESS BaseAddress;416 EFI_PHYSICAL_ADDRESS BaseAddress; 410 417 /// 411 418 /// The length in bytes of the firmware volume. 412 419 /// 413 UINT64 Length;420 UINT64 Length; 414 421 /// 415 422 /// The authentication status. 416 423 /// 417 UINT32 AuthenticationStatus;424 UINT32 AuthenticationStatus; 418 425 /// 419 426 /// TRUE if the FV was extracted as a file within another firmware volume. 420 427 /// FALSE otherwise. 421 428 /// 422 BOOLEAN ExtractedFv;429 BOOLEAN ExtractedFv; 423 430 /// 424 431 /// The name of the firmware volume. 425 432 /// Valid only if IsExtractedFv is TRUE. 426 433 /// 427 EFI_GUID FvName;434 EFI_GUID FvName; 428 435 /// 429 436 /// The name of the firmware file that contained this firmware volume. 430 437 /// Valid only if IsExtractedFv is TRUE. 431 438 /// 432 EFI_GUID FileName;439 EFI_GUID FileName; 433 440 } EFI_HOB_FIRMWARE_VOLUME3; 434 441 … … 440 447 /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_CPU. 441 448 /// 442 EFI_HOB_GENERIC_HEADER Header;449 EFI_HOB_GENERIC_HEADER Header; 443 450 /// 444 451 /// Identifies the maximum physical memory addressability of the processor. 445 452 /// 446 UINT8 SizeOfMemorySpace;453 UINT8 SizeOfMemorySpace; 447 454 /// 448 455 /// Identifies the maximum physical I/O addressability of the processor. 449 456 /// 450 UINT8 SizeOfIoSpace;457 UINT8 SizeOfIoSpace; 451 458 /// 452 459 /// This field will always be set to zero. 453 460 /// 454 UINT8 Reserved[6];461 UINT8 Reserved[6]; 455 462 } EFI_HOB_CPU; 456 463 457 458 464 /// 459 465 /// Describes pool memory allocations. … … 463 469 /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_POOL. 464 470 /// 465 EFI_HOB_GENERIC_HEADER Header;471 EFI_HOB_GENERIC_HEADER Header; 466 472 } EFI_HOB_MEMORY_POOL; 467 473 … … 477 483 /// The HOB generic header where Header.HobType = EFI_HOB_TYPE_UEFI_CAPSULE. 478 484 /// 479 EFI_HOB_GENERIC_HEADER Header;485 EFI_HOB_GENERIC_HEADER Header; 480 486 481 487 /// … … 484 490 /// The length of the contiguous memory in bytes. 485 491 /// 486 EFI_PHYSICAL_ADDRESS BaseAddress;487 UINT64 Length;492 EFI_PHYSICAL_ADDRESS BaseAddress; 493 UINT64 Length; 488 494 } EFI_HOB_UEFI_CAPSULE; 489 495 … … 492 498 /// 493 499 typedef union { 494 EFI_HOB_GENERIC_HEADER *Header;495 EFI_HOB_HANDOFF_INFO_TABLE *HandoffInformationTable;496 EFI_HOB_MEMORY_ALLOCATION *MemoryAllocation;497 EFI_HOB_MEMORY_ALLOCATION_BSP_STORE *MemoryAllocationBspStore;498 EFI_HOB_MEMORY_ALLOCATION_STACK *MemoryAllocationStack;499 EFI_HOB_MEMORY_ALLOCATION_MODULE *MemoryAllocationModule;500 EFI_HOB_RESOURCE_DESCRIPTOR *ResourceDescriptor;501 EFI_HOB_GUID_TYPE *Guid;502 EFI_HOB_FIRMWARE_VOLUME *FirmwareVolume;503 EFI_HOB_FIRMWARE_VOLUME2 *FirmwareVolume2;504 EFI_HOB_FIRMWARE_VOLUME3 *FirmwareVolume3;505 EFI_HOB_CPU *Cpu;506 EFI_HOB_MEMORY_POOL *Pool;507 EFI_HOB_UEFI_CAPSULE *Capsule;508 UINT8 *Raw;500 EFI_HOB_GENERIC_HEADER *Header; 501 EFI_HOB_HANDOFF_INFO_TABLE *HandoffInformationTable; 502 EFI_HOB_MEMORY_ALLOCATION *MemoryAllocation; 503 EFI_HOB_MEMORY_ALLOCATION_BSP_STORE *MemoryAllocationBspStore; 504 EFI_HOB_MEMORY_ALLOCATION_STACK *MemoryAllocationStack; 505 EFI_HOB_MEMORY_ALLOCATION_MODULE *MemoryAllocationModule; 506 EFI_HOB_RESOURCE_DESCRIPTOR *ResourceDescriptor; 507 EFI_HOB_GUID_TYPE *Guid; 508 EFI_HOB_FIRMWARE_VOLUME *FirmwareVolume; 509 EFI_HOB_FIRMWARE_VOLUME2 *FirmwareVolume2; 510 EFI_HOB_FIRMWARE_VOLUME3 *FirmwareVolume3; 511 EFI_HOB_CPU *Cpu; 512 EFI_HOB_MEMORY_POOL *Pool; 513 EFI_HOB_UEFI_CAPSULE *Capsule; 514 UINT8 *Raw; 509 515 } EFI_PEI_HOB_POINTERS; 510 516 511 512 517 #endif
Note:
See TracChangeset
for help on using the changeset viewer.