]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Pi/PiHob.h
Checked in the new includes of MdePkg, that are ProcessorBind.h, ModuleType.h and...
[mirror_edk2.git] / MdePkg / Pi / PiHob.h
CommitLineData
b4c31aaf 1/* @file\r
2 HOB related definitions in PI.\r
3\r
4 Copyright (c) 2006 - 2007, Intel Corporation \r
5 All rights reserved. This program and the accompanying materials \r
6 are licensed and made available under the terms and conditions of the BSD License \r
7 which accompanies this distribution. The full text of the license may be found at \r
8 http://opensource.org/licenses/bsd-license.php \r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
12\r
13 Module Name: PiHob.h\r
14\r
15 @par Revision Reference:\r
16 Version 1.0.\r
17\r
18**/\r
19\r
20#ifndef __PI_HOB_H__\r
21#define __PI_HOB_H__\r
22\r
23//\r
24// HobType of EFI_HOB_GENERIC_HEADER.\r
25// \r
26#define EFI_HOB_TYPE_HANDOFF 0x0001\r
27#define EFI_HOB_TYPE_MEMORY_ALLOCATION 0x0002\r
28#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR 0x0003\r
29#define EFI_HOB_TYPE_GUID_EXTENSION 0x0004\r
30#define EFI_HOB_TYPE_FV 0x0005\r
31#define EFI_HOB_TYPE_CPU 0x0006\r
32#define EFI_HOB_TYPE_MEMORY_POOL 0x0007\r
33#define EFI_HOB_TYPE_FV2 0x0009\r
34#define EFI_HOB_TYPE_LOAD_PEIM 0x000A\r
35#define EFI_HOB_TYPE_UNUSED 0xFFFE\r
36#define EFI_HOB_TYPE_END_OF_HOB_LIST 0xFFFF\r
37\r
38//\r
39// Describes the format and size of the data inside the HOB. \r
40// All HOBs must contain this generic HOB header.\r
41// \r
42typedef struct _EFI_HOB_GENERIC_HEADER {\r
43 UINT16 HobType;\r
44 UINT16 HobLength;\r
45 UINT32 Reserved;\r
46} EFI_HOB_GENERIC_HEADER;\r
47\r
48\r
49//\r
50// Value of version ofinEFI_HOB_HANDOFF_INFO_TABLE.\r
51// \r
52#define EFI_HOB_HANDOFF_TABLE_VERSION 0x0009\r
53//\r
54// Contains general state information used by the HOB producer phase. \r
55// This HOB must be the first one in the HOB list.\r
56// \r
57typedef struct _EFI_HOB_HANDOFF_INFO_TABLE {\r
58 EFI_HOB_GENERIC_HEADER Header;\r
59 UINT32 Version;\r
60 EFI_BOOT_MODE BootMode;\r
61 EFI_PHYSICAL_ADDRESS EfiMemoryTop;\r
62 EFI_PHYSICAL_ADDRESS EfiMemoryBottom;\r
63 EFI_PHYSICAL_ADDRESS EfiFreeMemoryTop;\r
64 EFI_PHYSICAL_ADDRESS EfiFreeMemoryBottom;\r
65 EFI_PHYSICAL_ADDRESS EfiEndOfHobList;\r
66} EFI_HOB_HANDOFF_INFO_TABLE;\r
67\r
68\r
69typedef struct _EFI_HOB_MEMORY_ALLOCATION_HEADER {\r
70 EFI_GUID Name;\r
71 EFI_PHYSICAL_ADDRESS MemoryBaseAddress;\r
72 UINT64 MemoryLength;\r
73 EFI_MEMORY_TYPE MemoryType;\r
74\r
75 //\r
76 // Padding for Itanium processor family\r
77 // \r
78 UINT8 Reserved[4];\r
79} EFI_HOB_MEMORY_ALLOCATION_HEADER;\r
80\r
81//\r
82// Describes all memory ranges used during the HOB producer \r
83// phase that exist outside the HOB list. This HOB type \r
84// describes how memory is used, \r
85// not the physical attributes of memory.\r
86// \r
87typedef struct _EFI_HOB_MEMORY_ALLOCATION {\r
88 EFI_HOB_GENERIC_HEADER Header;\r
89 EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;\r
90 //\r
91