]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Foundation/Framework/Include/EfiBootScript.h
replaced EFI_HOB_TYPE_LOAD_PEIM with EFI_HOB_TYPE_LOAD_PEIM_UNUSED
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Include / EfiBootScript.h
CommitLineData
3eb9473e 1/*++\r
2\r
3Copyright (c) 2004 - 2007, Intel Corporation \r
4All rights reserved. This program and the accompanying materials \r
5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12Module Name:\r
13\r
14 EfiBootScript.h\r
15\r
16Abstract:\r
17\r
18 \r
19\r
20--*/\r
21\r
22#ifndef _EFI_SCRIPT_H_\r
23#define _EFI_SCRIPT_H_\r
24\r
25#include "EfiSmbus.h"\r
26\r
27#define EFI_ACPI_S3_RESUME_SCRIPT_TABLE 0x00\r
28\r
29//\r
30// Boot Script Opcode Definitions\r
31//\r
32typedef const UINT16 EFI_BOOT_SCRIPT_OPCODE;\r
33\r
34#define EFI_BOOT_SCRIPT_IO_WRITE_OPCODE 0x00\r
35#define EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE 0x01\r
36#define EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE 0x02\r
37#define EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE 0x03\r
38#define EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE 0x04\r
39#define EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE 0x05\r
40#define EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE 0x06\r
41#define EFI_BOOT_SCRIPT_STALL_OPCODE 0x07\r
42#define EFI_BOOT_SCRIPT_DISPATCH_OPCODE 0x08\r
3eb9473e 43\r
2c40a813 44//\r
45// Extensions to boot script definitions\r
46//\r
47#define EFI_BOOT_SCRIPT_MEM_POLL_OPCODE 0x09\r
48#define EFI_BOOT_SCRIPT_INFORMATION_OPCODE 0x0A\r
49#define EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE 0x0B\r
50#define EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE 0x0C\r
3eb9473e 51\r
52#define EFI_BOOT_SCRIPT_TABLE_OPCODE 0xAA\r
53#define EFI_BOOT_SCRIPT_TERMINATE_OPCODE 0xFF\r
54\r
55#pragma pack(1)\r
56\r
57//\r
58// EFI Boot Script Width\r
59//\r
60typedef enum {\r
61 EfiBootScriptWidthUint8,\r
62 EfiBootScriptWidthUint16,\r
63 EfiBootScriptWidthUint32,\r
64 EfiBootScriptWidthUint64,\r
65 EfiBootScriptWidthFifoUint8,\r
66 EfiBootScriptWidthFifoUint16,\r
67 EfiBootScriptWidthFifoUint32,\r
68 EfiBootScriptWidthFifoUint64,\r
69 EfiBootScriptWidthFillUint8,\r
70 EfiBootScriptWidthFillUint16,\r
71 EfiBootScriptWidthFillUint32,\r
72 EfiBootScriptWidthFillUint64,\r
73 EfiBootScriptWidthMaximum\r
74} EFI_BOOT_SCRIPT_WIDTH;\r
75\r
76typedef struct {\r
77 UINT16 OpCode;\r
78 UINT8 Length;\r
79} EFI_BOOT_SCRIPT_GENERIC_HEADER;\r
80\r
81typedef struct {\r
82 UINT16 OpCode;\r
83 UINT8 Length;\r
84 UINT16 Version;\r
85 UINT32 TableLength;\r
86 UINT16 Reserved[2];\r
87} EFI_BOOT_SCRIPT_TABLE_HEADER;\r
88\r
89typedef struct {\r
90 UINT16 OpCode;\r
91 UINT8 Length;\r
92 UINT32 Width;\r
93} EFI_BOOT_SCRIPT_COMMON_HEADER;\r
94\r
95typedef struct {\r
96 UINT16 OpCode;\r
97 UINT8 Length;\r
98 UINT32 Width;\r
99 UINT32 Count;\r
100 UINT64 Address;\r
101} EFI_BOOT_SCRIPT_IO_WRITE;\r
102\r
103typedef struct {\r
104 UINT16 OpCode;\r
105 UINT8 Length;\r
106 UINT32 Width;\r
107 UINT64 Address;\r
108} EFI_BOOT_SCRIPT_IO_READ_WRITE;\r
109\r
110typedef struct {\r
111 UINT16 OpCode;\r
112 UINT8 Length;\r
113 UINT32 Width;\r
114 UINT32 Count;\r
115 UINT64 Address;\r
116} EFI_BOOT_SCRIPT_MEM_WRITE;\r
117\r
118typedef struct {\r
119 UINT16 OpCode;\r
120 UINT8 Length;\r
121 UINT32 Width;\r
122 UINT64 Address;\r
123} EFI_BOOT_SCRIPT_MEM_READ_WRITE;\r
124\r
125typedef struct {\r
126 UINT16 OpCode;\r
127 UINT8 Length;\r
128 UINT32 Width;\r
129 UINT32 Count;\r
130 UINT64 Address;\r
131} EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE;\r
132\r
133typedef struct {\r
134 UINT16 OpCode;\r
135 UINT8 Length;\r
136 UINT32 Width;\r
137 UINT32 Count;\r
138 UINT64 Address;\r
139 UINT16 Segment;\r
140} EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE;\r
141\r
142typedef struct {\r
143 UINT16 OpCode;\r
144 UINT8 Length;\r
145 UINT32 Width;\r
146 UINT64 Address;\r
147} EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE;\r
148\r
149typedef struct {\r
150 UINT16 OpCode;\r
151 UINT8 Length;\r
152 UINT32 Width;\r
153 UINT64 Address;\r
154 UINT16 Segment;\r
155} EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE;\r
156\r
157\r
158typedef struct {\r
159 UINT16 OpCode;\r
160 UINT8 Length;\r
161 UINT64 SlaveAddress;\r
162 UINT64 Command;\r
163 UINT32 Operation;\r
164 BOOLEAN PecCheck;\r
165 UINT32 DataSize;\r
166} EFI_BOOT_SCRIPT_SMBUS_EXECUTE;\r
167\r
168typedef struct {\r
169 UINT16 OpCode;\r
170 UINT8 Length;\r
171 UINT64 Duration;\r
172} EFI_BOOT_SCRIPT_STALL;\r
173\r
174typedef struct {\r
175 UINT16 OpCode;\r
176 UINT8 Length;\r
177 EFI_PHYSICAL_ADDRESS EntryPoint;\r
178} EFI_BOOT_SCRIPT_DISPATCH;\r
179\r
2c40a813 180typedef struct {\r
181 UINT16 OpCode;\r
182 UINT8 Length;\r
183 UINT32 Width;\r
184 UINT64 Address;\r
185 UINT64 BitMask;\r
186 UINT64 BitValue;\r
187 UINT64 Duration;\r
188 UINT64 LoopTimes;\r
189} EFI_BOOT_SCRIPT_MEM_POLL;\r
190\r
3eb9473e 191typedef struct {\r
192 UINT16 OpCode;\r
193 UINT8 Length;\r
194 UINT32 InformationLength; \r
195 EFI_PHYSICAL_ADDRESS Information;\r
196} EFI_BOOT_SCRIPT_INFORMATION;\r
197\r
198typedef struct {\r
199 UINT16 OpCode;\r
200 UINT8 Length;\r
201} EFI_BOOT_SCRIPT_TERMINATE;\r
202\r
203typedef union {\r
204 EFI_BOOT_SCRIPT_GENERIC_HEADER *Header;\r
205 EFI_BOOT_SCRIPT_TABLE_HEADER *TableInfo;\r
206 EFI_BOOT_SCRIPT_IO_WRITE *IoWrite;\r
207 EFI_BOOT_SCRIPT_IO_READ_WRITE *IoReadWrite;\r
208 EFI_BOOT_SCRIPT_MEM_WRITE *MemWrite;\r
209 EFI_BOOT_SCRIPT_MEM_READ_WRITE *MemReadWrite;\r
210 EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE *PciWrite;\r
211 EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE *PciReadWrite;\r
212 EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE *PciWrite2;\r
213 EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE *PciReadWrite2;\r
214 EFI_BOOT_SCRIPT_SMBUS_EXECUTE *SmbusExecute;\r
215 EFI_BOOT_SCRIPT_STALL *Stall;\r
216 EFI_BOOT_SCRIPT_DISPATCH *Dispatch;\r
2c40a813 217 EFI_BOOT_SCRIPT_MEM_POLL *MemPoll;\r
3eb9473e 218 EFI_BOOT_SCRIPT_INFORMATION *Information; \r
219 EFI_BOOT_SCRIPT_TERMINATE *Terminate;\r
220 EFI_BOOT_SCRIPT_COMMON_HEADER *CommonHeader;\r
221 UINT8 *Raw;\r
222} BOOT_SCRIPT_POINTERS;\r
223\r
224#pragma pack()\r
225\r
226#endif\r