TianoCore EDK2 master
Loading...
Searching...
No Matches
Hob.c
Go to the documentation of this file.
1
10#include <PiPei.h>
11
12#include <Library/BaseLib.h>
14#include <Library/DebugLib.h>
15#include <Library/PeCoffLib.h>
16#include <Library/HobLib.h>
17#include <Library/PcdLib.h>
19
21#include <Guid/ExtractSection.h>
24
25VOID
27 VOID
28 );
29
38VOID *
39EFIAPI
41 VOID
42 )
43{
44 return PrePeiGetHobList ();
45}
46
54EFIAPI
56 IN VOID *HobList
57 )
58{
59 return PrePeiSetHobList (HobList);
60}
61
67HobConstructor (
68 IN VOID *EfiMemoryBegin,
69 IN UINTN EfiMemoryLength,
70 IN VOID *EfiFreeMemoryBottom,
71 IN VOID *EfiFreeMemoryTop
72 )
73{
76
77 Hob = EfiFreeMemoryBottom;
78 HobEnd = (EFI_HOB_GENERIC_HEADER *)(Hob+1);
79
80 Hob->Header.HobType = EFI_HOB_TYPE_HANDOFF;
82 Hob->Header.Reserved = 0;
83
84 HobEnd->HobType = EFI_HOB_TYPE_END_OF_HOB_LIST;
85 HobEnd->HobLength = sizeof (EFI_HOB_GENERIC_HEADER);
86 HobEnd->Reserved = 0;
87
89 Hob->BootMode = BOOT_WITH_FULL_CONFIGURATION;
90
91 Hob->EfiMemoryTop = (UINTN)EfiMemoryBegin + EfiMemoryLength;
92 Hob->EfiMemoryBottom = (UINTN)EfiMemoryBegin;
93 Hob->EfiFreeMemoryTop = (UINTN)EfiFreeMemoryTop;
96
97 return Hob;
98}
99
100VOID *
102 IN UINT16 HobType,
103 IN UINT16 HobLength
104 )
105{
106 EFI_HOB_HANDOFF_INFO_TABLE *HandOffHob;
109 VOID *Hob;
110
111 HandOffHob = GetHobList ();
112
113 //
114 // Check Length to avoid data overflow.
115 //
116 if (HobLength > MAX_UINT16 - 0x7) {
117 return NULL;
118 }
119
120 HobLength = (UINT16)((HobLength + 0x7) & (~0x7));
121
122 FreeMemory = HandOffHob->EfiFreeMemoryTop - HandOffHob->EfiFreeMemoryBottom;
123
124 if (FreeMemory < HobLength) {
125 return NULL;
126 }
127
128 Hob = (VOID *)(UINTN)HandOffHob->EfiEndOfHobList;
129 ((EFI_HOB_GENERIC_HEADER *)Hob)->HobType = HobType;
130 ((EFI_HOB_GENERIC_HEADER *)Hob)->HobLength = HobLength;
131 ((EFI_HOB_GENERIC_HEADER *)Hob)->Reserved = 0;
132
133 HobEnd = (EFI_HOB_GENERIC_HEADER *)((UINTN)Hob + HobLength);
134 HandOffHob->EfiEndOfHobList = (EFI_PHYSICAL_ADDRESS)(UINTN)HobEnd;
135
136 HobEnd->HobType = EFI_HOB_TYPE_END_OF_HOB_LIST;
137 HobEnd->HobLength = sizeof (EFI_HOB_GENERIC_HEADER);
138 HobEnd->Reserved = 0;
139 HobEnd++;
140 HandOffHob->EfiFreeMemoryBottom = (EFI_PHYSICAL_ADDRESS)(UINTN)HobEnd;
141
142 return Hob;
143}
144
157VOID
158EFIAPI
160 IN EFI_RESOURCE_TYPE ResourceType,
161 IN EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute,
162 IN EFI_PHYSICAL_ADDRESS PhysicalStart,
163 IN UINT64 NumberOfBytes
164 )
165{
167
168 Hob = CreateHob (EFI_HOB_TYPE_RESOURCE_DESCRIPTOR, sizeof (EFI_HOB_RESOURCE_DESCRIPTOR));
169 ASSERT (Hob != NULL);
170 if (Hob == NULL) {
171 return;
172 }
173
174 Hob->ResourceType = ResourceType;
175 Hob->ResourceAttribute = ResourceAttribute;
176 Hob->PhysicalStart = PhysicalStart;
177 Hob->ResourceLength = NumberOfBytes;
178}
179
180VOID
181EFIAPI
183 IN EFI_PHYSICAL_ADDRESS PhysicalStart,
184 IN UINT64 NumberOfBytes,
185 IN EFI_RESOURCE_ATTRIBUTE_TYPE *ResourceAttribute
186 )
187{
189
190 BuildFvHob (PhysicalStart, NumberOfBytes);
191
192 if (ResourceAttribute == NULL) {
193 Resource = (EFI_RESOURCE_ATTRIBUTE_PRESENT |
194 EFI_RESOURCE_ATTRIBUTE_INITIALIZED |
195 EFI_RESOURCE_ATTRIBUTE_TESTED |
196 EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE);
197 } else {
198 Resource = *ResourceAttribute;
199 }
200
201 BuildResourceDescriptorHob (EFI_RESOURCE_FIRMWARE_DEVICE, Resource, PhysicalStart, NumberOfBytes);
202}
203
220VOID *
221EFIAPI
223 IN UINT16 Type,
224 IN CONST VOID *HobStart
225 )
226{
228
229 ASSERT (HobStart != NULL);
230
231 Hob.Raw = (UINT8 *)HobStart;
232 //
233 // Parse the HOB list until end of list or matching type is found.
234 //
235 while (!END_OF_HOB_LIST (Hob)) {
236 if (Hob.Header->HobType == Type) {
237 return Hob.Raw;
238 }
239
240 Hob.Raw = GET_NEXT_HOB (Hob);
241 }
242
243 return NULL;
244}
245
257VOID *
258EFIAPI
260 IN UINT16 Type
261 )
262{
263 VOID *HobList;
264
265 HobList = GetHobList ();
266 return GetNextHob (Type, HobList);
267}
268
288VOID *
289EFIAPI
291 IN CONST EFI_GUID *Guid,
292 IN CONST VOID *HobStart
293 )
294{
295 EFI_PEI_HOB_POINTERS GuidHob;
296
297 GuidHob.Raw = (UINT8 *)HobStart;
298 while ((GuidHob.Raw = GetNextHob (EFI_HOB_TYPE_GUID_EXTENSION, GuidHob.Raw)) != NULL) {
299 if (CompareGuid (Guid, &GuidHob.Guid->Name)) {
300 break;
301 }
302
303 GuidHob.Raw = GET_NEXT_HOB (GuidHob);
304 }
305
306 return GuidHob.Raw;
307}
308
323VOID *
324EFIAPI
326 IN CONST EFI_GUID *Guid
327 )
328{
329 VOID *HobList;
330
331 HobList = GetHobList ();
332 return GetNextGuidHob (Guid, HobList);
333}
334
343EFIAPI
345 VOID
346 )
347{
349
350 Hob.Raw = GetHobList ();
351 return Hob.HandoffInformationTable->BootMode;
352}
353
363EFIAPI
365 IN EFI_BOOT_MODE BootMode
366 )
367{
369
370 Hob.Raw = GetHobList ();
371 Hob.HandoffInformationTable->BootMode = BootMode;
372 return EFI_SUCCESS;
373}
374
390VOID
391EFIAPI
393 IN CONST EFI_GUID *ModuleName,
394 IN EFI_PHYSICAL_ADDRESS MemoryAllocationModule,
395 IN UINT64 ModuleLength,
396 IN EFI_PHYSICAL_ADDRESS EntryPoint
397 )
398{
400
401 ASSERT (
402 ((MemoryAllocationModule & (EFI_PAGE_SIZE - 1)) == 0) &&
403 ((ModuleLength & (EFI_PAGE_SIZE - 1)) == 0)
404 );
405
406 Hob = CreateHob (EFI_HOB_TYPE_MEMORY_ALLOCATION, sizeof (EFI_HOB_MEMORY_ALLOCATION_MODULE));
407 ASSERT (Hob != NULL);
408 if (Hob == NULL) {
409 return;
410 }
411
412 CopyGuid (&(Hob->MemoryAllocationHeader.Name), &gEfiHobMemoryAllocModuleGuid);
413 Hob->MemoryAllocationHeader.MemoryBaseAddress = MemoryAllocationModule;
414 Hob->MemoryAllocationHeader.MemoryLength = ModuleLength;
416
417 //
418 // Zero the reserved space to match HOB spec
419 //
421
422 CopyGuid (&Hob->ModuleName, ModuleName);
423 Hob->EntryPoint = EntryPoint;
424}
425
444VOID *
445EFIAPI
447 IN CONST EFI_GUID *Guid,
448 IN UINTN DataLength
449 )
450{
452
453 //
454 // Make sure that data length is not too long.
455 //
456 ASSERT (DataLength <= (0xffff - sizeof (EFI_HOB_GUID_TYPE)));
457
458 Hob = CreateHob (EFI_HOB_TYPE_GUID_EXTENSION, (UINT16)(sizeof (EFI_HOB_GUID_TYPE) + DataLength));
459 ASSERT (Hob != NULL);
460 if (Hob == NULL) {
461 return NULL;
462 }
463
464 CopyGuid (&Hob->Name, Guid);
465 return Hob + 1;
466}
467
488VOID *
489EFIAPI
491 IN CONST EFI_GUID *Guid,
492 IN VOID *Data,
493 IN UINTN DataLength
494 )
495{
496 VOID *HobData;
497
498 ASSERT (Data != NULL || DataLength == 0);
499
500 HobData = BuildGuidHob (Guid, DataLength);
501
502 return CopyMem (HobData, Data, DataLength);
503}
504
517VOID
518EFIAPI
520 IN EFI_PHYSICAL_ADDRESS BaseAddress,
521 IN UINT64 Length
522 )
523{
525
526 Hob = CreateHob (EFI_HOB_TYPE_FV, sizeof (EFI_HOB_FIRMWARE_VOLUME));
527 ASSERT (Hob != NULL);
528 if (Hob == NULL) {
529 return;
530 }
531
532 Hob->BaseAddress = BaseAddress;
533 Hob->Length = Length;
534}
535
550VOID
551EFIAPI
553 IN EFI_PHYSICAL_ADDRESS BaseAddress,
554 IN UINT64 Length,
555 IN CONST EFI_GUID *FvName,
556 IN CONST EFI_GUID *FileName
557 )
558{
560
561 Hob = CreateHob (EFI_HOB_TYPE_FV2, sizeof (EFI_HOB_FIRMWARE_VOLUME2));
562 ASSERT (Hob != NULL);
563 if (Hob == NULL) {
564 return;
565 }
566
567 Hob->BaseAddress = BaseAddress;
568 Hob->Length = Length;
569 CopyGuid (&Hob->FvName, FvName);
570 CopyGuid (&Hob->FileName, FileName);
571}
572
593VOID
594EFIAPI
596 IN EFI_PHYSICAL_ADDRESS BaseAddress,
597 IN UINT64 Length,
598 IN UINT32 AuthenticationStatus,
599 IN BOOLEAN ExtractedFv,
600 IN CONST EFI_GUID *FvName OPTIONAL,
601 IN CONST EFI_GUID *FileName OPTIONAL
602 )
603{
605
606 Hob = CreateHob (EFI_HOB_TYPE_FV3, sizeof (EFI_HOB_FIRMWARE_VOLUME3));
607 ASSERT (Hob != NULL);
608 if (Hob == NULL) {
609 return;
610 }
611
612 Hob->BaseAddress = BaseAddress;
613 Hob->Length = Length;
614 Hob->AuthenticationStatus = AuthenticationStatus;
615 Hob->ExtractedFv = ExtractedFv;
616 if (ExtractedFv) {
617 CopyGuid (&Hob->FvName, FvName);
618 CopyGuid (&Hob->FileName, FileName);
619 }
620}
621
634VOID
635EFIAPI
637 IN EFI_PHYSICAL_ADDRESS BaseAddress,
638 IN UINT64 Length
639 )
640{
641 ASSERT (FALSE);
642}
643
656VOID
657EFIAPI
659 IN UINT8 SizeOfMemorySpace,
660 IN UINT8 SizeOfIoSpace
661 )
662{
663 EFI_HOB_CPU *Hob;
664
665 Hob = CreateHob (EFI_HOB_TYPE_CPU, sizeof (EFI_HOB_CPU));
666 ASSERT (Hob != NULL);
667 if (Hob == NULL) {
668 return;
669 }
670
671 Hob->SizeOfMemorySpace = SizeOfMemorySpace;
672 Hob->SizeOfIoSpace = SizeOfIoSpace;
673
674 //
675 // Zero the reserved space to match HOB spec
676 //
677 ZeroMem (Hob->Reserved, sizeof (Hob->Reserved));
678}
679
692VOID
693EFIAPI
695 IN EFI_PHYSICAL_ADDRESS BaseAddress,
696 IN UINT64 Length
697 )
698{
700
701 ASSERT (
702 ((BaseAddress & (EFI_PAGE_SIZE - 1)) == 0) &&
703 ((Length & (EFI_PAGE_SIZE - 1)) == 0)
704 );
705
706 Hob = CreateHob (EFI_HOB_TYPE_MEMORY_ALLOCATION, sizeof (EFI_HOB_MEMORY_ALLOCATION_STACK));
707 ASSERT (Hob != NULL);
708 if (Hob == NULL) {
709 return;
710 }
711
712 CopyGuid (&(Hob->AllocDescriptor.Name), &gEfiHobMemoryAllocStackGuid);
713 Hob->AllocDescriptor.MemoryBaseAddress = BaseAddress;
714 Hob->AllocDescriptor.MemoryLength = Length;
716
717 //
718 // Zero the reserved space to match HOB spec
719 //
721}
722
730VOID
732 IN EFI_PHYSICAL_ADDRESS BaseAddress,
733 IN UINT64 Length
734 )
735{
737
738 Hob.Raw = GetHobList ();
739 while ((Hob.Raw = GetNextHob (EFI_HOB_TYPE_MEMORY_ALLOCATION, Hob.Raw)) != NULL) {
740 if (CompareGuid (&gEfiHobMemoryAllocStackGuid, &(Hob.MemoryAllocationStack->AllocDescriptor.Name))) {
741 //
742 // Build a new memory allocation HOB with old stack info with EfiConventionalMemory type
743 // to be reclaimed by DXE core.
744 //
746 Hob.MemoryAllocationStack->AllocDescriptor.MemoryBaseAddress,
747 Hob.MemoryAllocationStack->AllocDescriptor.MemoryLength,
749 );
750 //
751 // Update the BSP Stack Hob to reflect the new stack info.
752 //
753 Hob.MemoryAllocationStack->AllocDescriptor.MemoryBaseAddress = BaseAddress;
754 Hob.MemoryAllocationStack->AllocDescriptor.MemoryLength = Length;
755 break;
756 }
757
758 Hob.Raw = GET_NEXT_HOB (Hob);
759 }
760}
761
775VOID
776EFIAPI
778 IN EFI_PHYSICAL_ADDRESS BaseAddress,
779 IN UINT64 Length,
780 IN EFI_MEMORY_TYPE MemoryType
781 )
782{
784
785 ASSERT (
786 ((BaseAddress & (EFI_PAGE_SIZE - 1)) == 0) &&
787 ((Length & (EFI_PAGE_SIZE - 1)) == 0)
788 );
789
790 Hob = CreateHob (EFI_HOB_TYPE_MEMORY_ALLOCATION, sizeof (EFI_HOB_MEMORY_ALLOCATION));
791 ASSERT (Hob != NULL);
792 if (Hob == NULL) {
793 return;
794 }
795
796 ZeroMem (&(Hob->AllocDescriptor.Name), sizeof (EFI_GUID));
797 Hob->AllocDescriptor.MemoryBaseAddress = BaseAddress;
798 Hob->AllocDescriptor.MemoryLength = Length;
799 Hob->AllocDescriptor.MemoryType = MemoryType;
800 //
801 // Zero the reserved space to match HOB spec
802 //
804}
805
806VOID
807EFIAPI
808BuildExtractSectionHob (
809 IN EFI_GUID *Guid,
812 )
813{
815
816 Data.SectionGetInfo = SectionGetInfo;
817 Data.SectionExtraction = SectionExtraction;
818 BuildGuidDataHob (Guid, &Data, sizeof (Data));
819}
820
821PE_COFF_LOADER_PROTOCOL gPeCoffProtocol = {
828};
829
830VOID
831EFIAPI
832BuildPeCoffLoaderHob (
833 VOID
834 )
835{
836 VOID *Ptr;
837
838 Ptr = &gPeCoffProtocol;
839 BuildGuidDataHob (&gPeCoffLoaderProtocolGuid, &Ptr, sizeof (VOID *));
840}
841
842// May want to put this into a library so you only need the PCD settings if you are using the feature?
843VOID
845 VOID
846 )
847{
849
850 Info[0].Type = EfiACPIReclaimMemory;
851 Info[0].NumberOfPages = PcdGet32 (PcdMemoryTypeEfiACPIReclaimMemory);
852 Info[1].Type = EfiACPIMemoryNVS;
853 Info[1].NumberOfPages = PcdGet32 (PcdMemoryTypeEfiACPIMemoryNVS);
854 Info[2].Type = EfiReservedMemoryType;
855 Info[2].NumberOfPages = PcdGet32 (PcdMemoryTypeEfiReservedMemoryType);
857 Info[3].NumberOfPages = PcdGet32 (PcdMemoryTypeEfiRuntimeServicesData);
859 Info[4].NumberOfPages = PcdGet32 (PcdMemoryTypeEfiRuntimeServicesCode);
860 // Terminator for the list
861 Info[5].Type = EfiMaxMemoryType;
862 Info[5].NumberOfPages = 0;
863
864 BuildGuidDataHob (&gEfiMemoryTypeInformationGuid, &Info, sizeof (Info));
865}
UINT64 UINTN
EFI_STATUS EFIAPI PrePeiSetHobList(IN VOID *HobList)
VOID *EFIAPI PrePeiGetHobList(VOID)
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
BOOLEAN EFIAPI CompareGuid(IN CONST GUID *Guid1, IN CONST GUID *Guid2)
Definition: MemLibGuid.c:73
GUID *EFIAPI CopyGuid(OUT GUID *DestinationGuid, IN CONST GUID *SourceGuid)
Definition: MemLibGuid.c:39
VOID *EFIAPI ZeroMem(OUT VOID *Buffer, IN UINTN Length)
VOID FreeMemory(VOID)
Definition: Compress.c:216
VOID EFIAPI BuildFv2Hob(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN CONST EFI_GUID *FvName, IN CONST EFI_GUID *FileName)
Definition: Hob.c:552
VOID * CreateHob(IN UINT16 HobType, IN UINT16 HobLength)
Definition: Hob.c:101
EFI_STATUS EFIAPI SetBootMode(IN EFI_BOOT_MODE BootMode)
Definition: Hob.c:364
VOID *EFIAPI GetFirstHob(IN UINT16 Type)
Definition: Hob.c:259
EFI_STATUS EFIAPI SetHobList(IN VOID *HobList)
Definition: Hob.c:55
VOID *EFIAPI GetFirstGuidHob(IN CONST EFI_GUID *Guid)
Definition: Hob.c:325
VOID *EFIAPI BuildGuidDataHob(IN CONST EFI_GUID *Guid, IN VOID *Data, IN UINTN DataLength)
Definition: Hob.c:490
VOID EFIAPI BuildModuleHob(IN CONST EFI_GUID *ModuleName, IN EFI_PHYSICAL_ADDRESS MemoryAllocationModule, IN UINT64 ModuleLength, IN EFI_PHYSICAL_ADDRESS EntryPoint)
Definition: Hob.c:392
VOID EFIAPI BuildCpuHob(IN UINT8 SizeOfMemorySpace, IN UINT8 SizeOfIoSpace)
Definition: Hob.c:658
VOID EFIAPI BuildResourceDescriptorHob(IN EFI_RESOURCE_TYPE ResourceType, IN EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute, IN EFI_PHYSICAL_ADDRESS PhysicalStart, IN UINT64 NumberOfBytes)
Definition: Hob.c:159
VOID EFIAPI BuildFvHob(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
Definition: Hob.c:519
VOID *EFIAPI BuildGuidHob(IN CONST EFI_GUID *Guid, IN UINTN DataLength)
Definition: Hob.c:446
EFI_BOOT_MODE EFIAPI GetBootMode(VOID)
Definition: Hob.c:344
VOID BuildMemoryTypeInformationHob(VOID)
Definition: Hob.c:844
VOID UpdateStackHob(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
Definition: Hob.c:731
VOID EFIAPI BuildFv3Hob(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN UINT32 AuthenticationStatus, IN BOOLEAN ExtractedFv, IN CONST EFI_GUID *FvName OPTIONAL, IN CONST EFI_GUID *FileName OPTIONAL)
Definition: Hob.c:595
VOID EFIAPI BuildMemoryAllocationHob(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN EFI_MEMORY_TYPE MemoryType)
Definition: Hob.c:777
VOID *EFIAPI GetNextHob(IN UINT16 Type, IN CONST VOID *HobStart)
Definition: Hob.c:222
VOID EFIAPI BuildCvHob(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
Definition: Hob.c:636
VOID *EFIAPI GetNextGuidHob(IN CONST EFI_GUID *Guid, IN CONST VOID *HobStart)
Definition: Hob.c:290
VOID *EFIAPI GetHobList(VOID)
Definition: Hob.c:40
VOID EFIAPI BuildStackHob(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
Definition: Hob.c:694
RETURN_STATUS(EFIAPI * EXTRACT_GUIDED_SECTION_DECODE_HANDLER)(IN CONST VOID *InputSection, OUT VOID **OutputBuffer, IN VOID *ScratchBuffer OPTIONAL, OUT UINT32 *AuthenticationStatus)
RETURN_STATUS(EFIAPI * EXTRACT_GUIDED_SECTION_GET_INFO_HANDLER)(IN CONST VOID *InputSection, OUT UINT32 *OutputBufferSize, OUT UINT32 *ScratchBufferSize, OUT UINT16 *SectionAttribute)
#define NULL
Definition: Base.h:319
#define CONST
Definition: Base.h:259
#define FALSE
Definition: Base.h:307
#define IN
Definition: Base.h:279
#define PcdGet32(TokenName)
Definition: PcdLib.h:362
RETURN_STATUS EFIAPI PeCoffLoaderLoadImage(IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext)
Definition: BasePeCoff.c:1244
RETURN_STATUS EFIAPI PeCoffLoaderRelocateImage(IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext)
Definition: BasePeCoff.c:956
VOID EFIAPI PeCoffLoaderRelocateImageForRuntime(IN PHYSICAL_ADDRESS ImageBase, IN PHYSICAL_ADDRESS VirtImageBase, IN UINTN ImageSize, IN VOID *RelocationData)
Definition: BasePeCoff.c:1742
RETURN_STATUS EFIAPI PeCoffLoaderUnloadImage(IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext)
Definition: BasePeCoff.c:2025
RETURN_STATUS EFIAPI PeCoffLoaderGetImageInfo(IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext)
Definition: BasePeCoff.c:577
RETURN_STATUS EFIAPI PeCoffLoaderImageReadFromMemory(IN VOID *FileHandle, IN UINTN FileOffset, IN OUT UINTN *ReadSize, OUT VOID *Buffer)
Definition: BasePeCoff.c:1992
UINT32 EFI_BOOT_MODE
Definition: PiBootMode.h:18
UINT32 EFI_RESOURCE_TYPE
Definition: PiHob.h:223
#define EFI_HOB_HANDOFF_TABLE_VERSION
Definition: PiHob.h:54
UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE
Definition: PiHob.h:241
VOID EFIAPI BuildFvHobs(IN EFI_PHYSICAL_ADDRESS PhysicalStart, IN UINT64 NumberOfBytes, IN EFI_RESOURCE_ATTRIBUTE_TYPE *ResourceAttribute OPTIONAL)
UINT64 EFI_PHYSICAL_ADDRESS
Definition: UefiBaseType.h:50
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
#define EFI_SUCCESS
Definition: UefiBaseType.h:112
EFI_MEMORY_TYPE
@ EfiBootServicesData
@ EfiReservedMemoryType
@ EfiBootServicesCode
@ EfiConventionalMemory
@ EfiACPIMemoryNVS
@ EfiACPIReclaimMemory
@ EfiRuntimeServicesCode
@ EfiRuntimeServicesData
UINT8 SizeOfIoSpace
Definition: PiHob.h:451
UINT8 SizeOfMemorySpace
Definition: PiHob.h:447
UINT8 Reserved[6]
Definition: PiHob.h:455
EFI_PHYSICAL_ADDRESS BaseAddress
Definition: PiHob.h:383
UINT32 AuthenticationStatus
Definition: PiHob.h:418
EFI_PHYSICAL_ADDRESS BaseAddress
Definition: PiHob.h:410
EFI_PHYSICAL_ADDRESS BaseAddress
Definition: PiHob.h:364
EFI_GUID Name
Definition: PiHob.h:347
EFI_BOOT_MODE BootMode
Definition: PiHob.h:74
EFI_PHYSICAL_ADDRESS EfiFreeMemoryBottom
Definition: PiHob.h:92
EFI_PHYSICAL_ADDRESS EfiMemoryTop
Definition: PiHob.h:79
EFI_PHYSICAL_ADDRESS EfiFreeMemoryTop
Definition: PiHob.h:88
EFI_PHYSICAL_ADDRESS EfiMemoryBottom
Definition: PiHob.h:83
EFI_HOB_GENERIC_HEADER Header
Definition: PiHob.h:64
EFI_PHYSICAL_ADDRESS EfiEndOfHobList
Definition: PiHob.h:96
EFI_PHYSICAL_ADDRESS MemoryBaseAddress
Definition: PiHob.h:119
EFI_MEMORY_TYPE MemoryType
Definition: PiHob.h:131
EFI_PHYSICAL_ADDRESS EntryPoint
Definition: PiHob.h:217
EFI_HOB_MEMORY_ALLOCATION_HEADER MemoryAllocationHeader
Definition: PiHob.h:207
EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor
Definition: PiHob.h:174
EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor
Definition: PiHob.h:153
EFI_PHYSICAL_ADDRESS PhysicalStart
Definition: PiHob.h:328
EFI_RESOURCE_TYPE ResourceType
Definition: PiHob.h:320
EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute
Definition: PiHob.h:324
UINT32 NumberOfPages
The pages of this type memory.
UINT32 Type
EFI memory type defined in UEFI specification.
Definition: Base.h:213