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