| /** @file | |
| Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR> | |
| This program and the accompanying materials | |
| are licensed and made available under the terms and conditions of the BSD License | |
| which accompanies this distribution. The full text of the license may be found at | |
| http://opensource.org/licenses/bsd-license.php | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| Module Name: | |
| HobGeneration.h | |
| Abstract: | |
| Revision History: | |
| **/ | |
| #ifndef _DXELDR_HOB_GENERATION_H_ | |
| #define _DXELDR_HOB_GENERATION_H_ | |
| #include "DxeIpl.h" | |
| #define EFI_MEMORY_BELOW_1MB_START 0x86000 | |
| #define EFI_MEMORY_BELOW_1MB_END 0x9F800 | |
| #define EFI_MEMORY_STACK_PAGE_NUM 0x20 | |
| #define CONSUMED_MEMORY 0x100000 * 80 | |
| #define NV_STORAGE_START 0x15000 | |
| #define NV_STORAGE_STATE 0x19000 | |
| #pragma pack(1) | |
| typedef struct { | |
| EFI_HOB_GUID_TYPE Hob; | |
| EFI_MEMORY_TYPE_INFORMATION Info[10]; | |
| } MEMORY_TYPE_INFORMATION_HOB; | |
| typedef struct { | |
| EFI_HOB_GUID_TYPE Hob; | |
| EFI_PHYSICAL_ADDRESS Table; | |
| } TABLE_HOB; | |
| typedef struct { | |
| EFI_HOB_GUID_TYPE Hob; | |
| EFI_PHYSICAL_ADDRESS Interface; | |
| } PROTOCOL_HOB; | |
| typedef struct { | |
| EFI_HOB_GUID_TYPE Hob; | |
| // Note: we get only one PCI Segment now. | |
| EFI_PCI_EXPRESS_BASE_ADDRESS_INFORMATION PciExpressBaseAddressInfo; | |
| } PCI_EXPRESS_BASE_HOB; | |
| typedef struct { | |
| EFI_HOB_GUID_TYPE Hob; | |
| EFI_ACPI_DESCRIPTION AcpiDescription; | |
| } ACPI_DESCRIPTION_HOB; | |
| typedef struct { | |
| EFI_HOB_GUID_TYPE Hob; | |
| EFI_FLASH_MAP_FS_ENTRY_DATA FvbInfo; | |
| } FVB_HOB; | |
| typedef struct { | |
| EFI_HOB_HANDOFF_INFO_TABLE Phit; | |
| EFI_HOB_FIRMWARE_VOLUME Bfv; | |
| EFI_HOB_RESOURCE_DESCRIPTOR BfvResource; | |
| EFI_HOB_CPU Cpu; | |
| EFI_HOB_MEMORY_ALLOCATION_STACK Stack; | |
| EFI_HOB_MEMORY_ALLOCATION MemoryAllocation; | |
| EFI_HOB_RESOURCE_DESCRIPTOR MemoryFreeUnder1MB; | |
| EFI_HOB_RESOURCE_DESCRIPTOR MemoryAbove1MB; | |
| EFI_HOB_RESOURCE_DESCRIPTOR MemoryAbove4GB; | |
| EFI_HOB_MEMORY_ALLOCATION_MODULE DxeCore; | |
| EFI_HOB_RESOURCE_DESCRIPTOR MemoryDxeCore; | |
| MEMORY_TYPE_INFORMATION_HOB MemoryTypeInfo; | |
| TABLE_HOB Acpi; | |
| TABLE_HOB Acpi20; | |
| TABLE_HOB Smbios; | |
| TABLE_HOB Mps; | |
| /** | |
| PROTOCOL_HOB FlushInstructionCache; | |
| PROTOCOL_HOB TransferControl; | |
| PROTOCOL_HOB PeCoffLoader; | |
| PROTOCOL_HOB EfiDecompress; | |
| PROTOCOL_HOB TianoDecompress; | |
| **/ | |
| PROTOCOL_HOB SerialStatusCode; | |
| MEMORY_DESC_HOB MemoryDescriptor; | |
| PCI_EXPRESS_BASE_HOB PciExpress; | |
| ACPI_DESCRIPTION_HOB AcpiInfo; | |
| EFI_HOB_RESOURCE_DESCRIPTOR NvStorageFvResource; | |
| FVB_HOB NvStorageFvb; | |
| FVB_HOB NvStorage; | |
| EFI_HOB_RESOURCE_DESCRIPTOR NvFtwFvResource; | |
| FVB_HOB NvFtwFvb; | |
| FVB_HOB NvFtwWorking; | |
| FVB_HOB NvFtwSpare; | |
| EFI_HOB_GENERIC_HEADER EndOfHobList; | |
| } HOB_TEMPLATE; | |
| #pragma pack() | |
| extern HOB_TEMPLATE *gHob; | |
| VOID * | |
| PrepareHobStack ( | |
| IN VOID *StackTop | |
| ); | |
| VOID | |
| PrepareHobBfv ( | |
| VOID *Bfv, | |
| UINTN BfvLength | |
| ); | |
| VOID * | |
| PrepareHobMemory ( | |
| IN UINTN NumberOfMemoryMapEntries, | |
| IN EFI_MEMORY_DESCRIPTOR *EfiMemoryDescriptor | |
| ); | |
| VOID | |
| PrepareHobDxeCore ( | |
| VOID *DxeCoreEntryPoint, | |
| EFI_PHYSICAL_ADDRESS DxeCoreImageBase, | |
| UINT64 DxeCoreLength | |
| ); | |
| VOID * | |
| PreparePageTable ( | |
| VOID *PageNumberTop, | |
| UINT8 SizeOfMemorySpace | |
| ); | |
| VOID * | |
| PrepareHobMemoryDescriptor ( | |
| VOID *MemoryDescriptorTop, | |
| UINTN MemDescCount, | |
| EFI_MEMORY_DESCRIPTOR *MemDesc | |
| ); | |
| VOID | |
| PrepareHobPhit ( | |
| VOID *MemoryTop, | |
| VOID *FreeMemoryTop | |
| ); | |
| VOID * | |
| PrepareHobNvStorage ( | |
| VOID *NvStorageTop | |
| ); | |
| VOID | |
| PrepareHobCpu ( | |
| VOID | |
| ); | |
| VOID | |
| CompleteHobGeneration ( | |
| VOID | |
| ); | |
| #endif |