]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Foundation/Framework/Include/EfiBootScript.h
Add ReadMe.txt to specify that the EFI image FatBinPkg provides does not contain...
[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
43#define EFI_BOOT_SCRIPT_INFORMATION_OPCODE 0x0A\r
44\r
45#define EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE 0x0B\r
46#define EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE 0x0C\r
47\r
48#define EFI_BOOT_SCRIPT_TABLE_OPCODE 0xAA\r
49#define EFI_BOOT_SCRIPT_TERMINATE_OPCODE 0xFF\r
50\r
51#pragma pack(1)\r
52\r
53//\r
54// EFI Boot Script Width\r
55//\r
56typedef enum {\r
57 EfiBootScriptWidthUint8,\r
58 EfiBootScriptWidthUint16,\r
59 EfiBootScriptWidthUint32,\r
60 EfiBootScriptWidthUint64,\r
61 EfiBootScriptWidthFifoUint8,\r
62 EfiBootScriptWidthFifoUint16,\r
63 EfiBootScriptWidthFifoUint32,\r
64 EfiBootScriptWidthFifoUint64,\r
65 EfiBootScriptWidthFillUint8,\r
66 EfiBootScriptWidthFillUint16,\r
67 EfiBootScriptWidthFillUint32,\r
68 EfiBootScriptWidthFillUint64,\r
69 EfiBootScriptWidthMaximum\r
70} EFI_BOOT_SCRIPT_WIDTH;\r
71\r
72typedef struct {\r
73 UINT16 OpCode;\r
74 UINT8 Length;\r
75} EFI_BOOT_SCRIPT_GENERIC_HEADER;\r
76\r
77typedef struct {\r
78 UINT16 OpCode;\r
79 UINT8 Length;\r
80 UINT16 Version;\r
81 UINT32 TableLength;\r
82 UINT16 Reserved[2];\r
83} EFI_BOOT_SCRIPT_TABLE_HEADER;\r
84\r
85typedef struct {\r
86 UINT16 OpCode;\r
87 UINT8 Length;\r
88 UINT32 Width;\r
89} EFI_BOOT_SCRIPT_COMMON_HEADER;\r
90\r
91typedef struct {\r
92 UINT16 OpCode;\r
93 UINT8 Length;\r
94 UINT32 Width;\r
95 UINT32 Count;\r
96 UINT64 Address;\r
97} EFI_BOOT_SCRIPT_IO_WRITE;\r
98\r
99typedef struct {\r
100 UINT16 OpCode;\r
101 UINT8 Length;\r
102 UINT32 Width;\r
103 UINT64 Address;\r
104} EFI_BOOT_SCRIPT_IO_READ_WRITE;\r
105\r
106typedef struct {\r
107 UINT16 OpCode;\r
108 UINT8 Length;\r
109 UINT32 Width;\r
110 UINT32 Count;\r
111 UINT64 Address;\r
112} EFI_BOOT_SCRIPT_MEM_WRITE;\r
113\r
114typedef struct {\r
115 UINT16 OpCode;\r
116 UINT8 Length;\r
117 UINT32 Width;\r
118 UINT64 Address;\r
119} EFI_BOOT_SCRIPT_MEM_READ_WRITE;\r
120\r
121typedef struct {\r
122 UINT16 OpCode;\r
123 UINT8 Length;\r
124 UINT32 Width;\r
125 UINT32 Count;\r
126 UINT64 Address;\r
127} EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE;\r
128\r
129typedef struct {\r
130 UINT16 OpCode;\r
131 UINT8 Length;\r
132 UINT32 Width;\r
133 UINT32 Count;\r
134 UINT64 Address;\r
135 UINT16 Segment;\r
136} EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE;\r
137\r
138typedef struct {\r
139 UINT16 OpCode;\r
140 UINT8 Length;\r
141 UINT32 Width;\r
142 UINT64 Address;\r
143} EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE;\r
144\r
145typedef struct {\r
146 UINT16 OpCode;\r
147 UINT8 Length;\r
148 UINT32 Width;\r
149 UINT64 Address;\r
150 UINT16 Segment;\r
151} EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE;\r
152\r
153\r
154typedef struct {\r
155 UINT16 OpCode;\r
156 UINT8 Length;\r
157 UINT64 SlaveAddress;\r
158 UINT64 Command;\r
159 UINT32 Operation;\r
160 BOOLEAN PecCheck;\r
161 UINT32 DataSize;\r
162} EFI_BOOT_SCRIPT_SMBUS_EXECUTE;\r
163\r
164typedef struct {\r
165 UINT16 OpCode;\r
166 UINT8 Length;\r
167 UINT64 Duration;\r
168} EFI_BOOT_SCRIPT_STALL;\r
169\r
170typedef struct {\r
171 UINT16 OpCode;\r
172 UINT8 Length;\r
173 EFI_PHYSICAL_ADDRESS EntryPoint;\r
174} EFI_BOOT_SCRIPT_DISPATCH;\r
175\r
176typedef struct {\r
177 UINT16 OpCode;\r
178 UINT8 Length;\r
179 UINT32 InformationLength; \r
180 EFI_PHYSICAL_ADDRESS Information;\r
181} EFI_BOOT_SCRIPT_INFORMATION;\r
182\r
183typedef struct {\r
184 UINT16 OpCode;\r
185 UINT8 Length;\r
186} EFI_BOOT_SCRIPT_TERMINATE;\r
187\r
188typedef union {\r
189 EFI_BOOT_SCRIPT_GENERIC_HEADER *Header;\r
190 EFI_BOOT_SCRIPT_TABLE_HEADER *TableInfo;\r
191 EFI_BOOT_SCRIPT_IO_WRITE *IoWrite;\r
192 EFI_BOOT_SCRIPT_IO_READ_WRITE *IoReadWrite;\r
193 EFI_BOOT_SCRIPT_MEM_WRITE *MemWrite;\r
194 EFI_BOOT_SCRIPT_MEM_READ_WRITE *MemReadWrite;\r
195 EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE *PciWrite;\r
196 EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE *PciReadWrite;\r
197 EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE *PciWrite2;\r
198 EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE *PciReadWrite2;\r
199 EFI_BOOT_SCRIPT_SMBUS_EXECUTE *SmbusExecute;\r
200 EFI_BOOT_SCRIPT_STALL *Stall;\r
201 EFI_BOOT_SCRIPT_DISPATCH *Dispatch;\r
202 EFI_BOOT_SCRIPT_INFORMATION *Information; \r
203 EFI_BOOT_SCRIPT_TERMINATE *Terminate;\r
204 EFI_BOOT_SCRIPT_COMMON_HEADER *CommonHeader;\r
205 UINT8 *Raw;\r
206} BOOT_SCRIPT_POINTERS;\r
207\r
208#pragma pack()\r
209\r
210#endif\r