]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - MdePkg/Include/Common/BootScript.h
Change the Boot Script storage to fixed length.
[mirror_edk2.git] / MdePkg / Include / Common / BootScript.h
... / ...
CommitLineData
1/** @file\r
2 This file declares the related BootScript definitions and some SMBus definitions.\r
3\r
4 Copyright (c) 2006, 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: BootScript.h\r
14\r
15 @par Revision Reference:\r
16 These definitions are defined in BootScript Spec 0.91 and SmBus PPI spec 0.9.\r
17\r
18**/\r
19\r
20#ifndef _EFI_SCRIPT_H_\r
21#define _EFI_SCRIPT_H_\r
22\r
23#define EFI_ACPI_S3_RESUME_SCRIPT_TABLE 0x00\r
24\r
25//\r
26// Boot Script Opcode Definitions\r
27//\r
28\r
29#define EFI_BOOT_SCRIPT_IO_WRITE_OPCODE 0x00\r
30#define EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE 0x01\r
31#define EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE 0x02\r
32#define EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE 0x03\r
33#define EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE 0x04\r
34#define EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE 0x05\r
35#define EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE 0x06\r
36#define EFI_BOOT_SCRIPT_STALL_OPCODE 0x07\r
37#define EFI_BOOT_SCRIPT_DISPATCH_OPCODE 0x08\r
38#define EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE 0x09\r
39#define EFI_BOOT_SCRIPT_INFORMATION_OPCODE 0x0A\r
40\r
41#define EFI_BOOT_SCRIPT_TABLE_OPCODE 0xAA\r
42#define EFI_BOOT_SCRIPT_TERMINATE_OPCODE 0xFF\r
43\r
44#ifndef __GNUC__\r
45#pragma pack(1)\r
46#endif\r
47\r
48//\r
49// EFI Boot Script Width\r
50//\r
51typedef enum {\r
52 EfiBootScriptWidthUint8,\r
53 EfiBootScriptWidthUint16,\r
54 EfiBootScriptWidthUint32,\r
55 EfiBootScriptWidthUint64,\r
56 EfiBootScriptWidthFifoUint8,\r
57 EfiBootScriptWidthFifoUint16,\r
58 EfiBootScriptWidthFifoUint32,\r
59 EfiBootScriptWidthFifoUint64,\r
60 EfiBootScriptWidthFillUint8,\r
61 EfiBootScriptWidthFillUint16,\r
62 EfiBootScriptWidthFillUint32,\r
63 EfiBootScriptWidthFillUint64,\r
64 EfiBootScriptWidthMaximum\r
65} EFI_BOOT_SCRIPT_WIDTH;\r
66\r
67//\r
68// EFI Smbus Device Address, Smbus Device Command, Smbus Operation\r
69//\r
70typedef struct {\r
71 UINTN SmbusDeviceAddress : 7;\r
72} EFI_SMBUS_DEVICE_ADDRESS;\r
73\r
74typedef UINTN EFI_SMBUS_DEVICE_COMMAND;\r
75\r
76typedef enum _EFI_SMBUS_OPERATION\r
77{\r
78 EfiSmbusQuickRead,\r
79 EfiSmbusQuickWrite,\r
80 EfiSmbusReceiveByte,\r
81 EfiSmbusSendByte,\r
82 EfiSmbusReadByte,\r
83 EfiSmbusWriteByte,\r
84 EfiSmbusReadWord,\r
85 EfiSmbusWriteWord,\r
86 EfiSmbusReadBlock,\r
87 EfiSmbusWriteBlock,\r
88 EfiSmbusProcessCall,\r
89 EfiSmbusBWBRProcessCall\r
90} EFI_SMBUS_OPERATION;\r
91\r
92//\r
93// Boot Script Opcode Header Structure Definitions\r
94//\r
95\r
96typedef struct {\r
97 UINT16 OpCode;\r
98 UINT8 Length;\r
99} EFI_BOOT_SCRIPT_GENERIC_HEADER;\r
100\r
101typedef struct {\r
102 UINT16 OpCode;\r
103 UINT8 Length;\r
104 UINT16 Version;\r
105 UINT32 TableLength;\r
106 UINT16 Reserved[2];\r
107} EFI_BOOT_SCRIPT_TABLE_HEADER;\r
108\r
109typedef struct {\r
110 UINT16 OpCode;\r
111 UINT8 Length;\r
112 UINT32 Width;\r
113} EFI_BOOT_SCRIPT_COMMON_HEADER;\r
114\r
115typedef struct {\r
116 UINT16 OpCode;\r
117 UINT8 Length;\r
118 UINT32 Width;\r
119 UINT32 Count;\r
120 UINT64 Address;\r
121} EFI_BOOT_SCRIPT_IO_WRITE;\r
122\r
123typedef struct {\r
124 UINT16 OpCode;\r
125 UINT8 Length;\r
126 UINT32 Width;\r
127 UINT64 Address;\r
128} EFI_BOOT_SCRIPT_IO_READ_WRITE;\r
129\r
130typedef struct {\r
131 UINT16 OpCode;\r
132 UINT8 Length;\r
133 UINT32 Width;\r
134 UINT32 Count;\r
135 UINT64 Address;\r
136} EFI_BOOT_SCRIPT_MEM_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_MEM_READ_WRITE;\r
144\r
145typedef struct {\r
146 UINT16 OpCode;\r
147 UINT8 Length;\r
148 UINT32 Width;\r
149 UINT32 Count;\r
150 UINT64 Address;\r
151} EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE;\r
152\r
153typedef struct {\r
154 UINT16 OpCode;\r
155 UINT8 Length;\r
156 UINT32 Width;\r
157 UINT64 Address;\r
158} EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE;\r
159\r
160typedef struct {\r
161 UINT16 OpCode;\r
162 UINT8 Length;\r
163 UINT64 SlaveAddress;\r
164 UINT64 Command;\r
165 UINT32 Operation;\r
166 BOOLEAN PecCheck;\r
167 UINT32 DataSize;\r
168} EFI_BOOT_SCRIPT_SMBUS_EXECUTE;\r
169\r
170typedef struct {\r
171 UINT16 OpCode;\r
172 UINT8 Length;\r
173 UINT64 Duration;\r
174} EFI_BOOT_SCRIPT_STALL;\r
175\r
176typedef struct {\r
177 UINT16 OpCode;\r
178 UINT8 Length;\r
179 EFI_PHYSICAL_ADDRESS EntryPoint;\r
180} EFI_BOOT_SCRIPT_DISPATCH;\r
181\r
182typedef struct {\r
183 UINT16 OpCode;\r
184 UINT8 Length;\r
185 EFI_PHYSICAL_ADDRESS EntryPoint;\r
186 EFI_PHYSICAL_ADDRESS Context;\r
187} EFI_BOOT_SCRIPT_DISPATCH_2;\r
188\r
189typedef struct {\r
190 UINT16 OpCode;\r
191 UINT8 Length;\r
192 UINT32 InformationLength; \r
193 EFI_PHYSICAL_ADDRESS Information;\r
194} EFI_BOOT_SCRIPT_INFORMATION;\r
195\r
196typedef struct {\r
197 UINT16 OpCode;\r
198 UINT8 Length;\r
199} EFI_BOOT_SCRIPT_TERMINATE;\r
200\r
201typedef union {\r
202 EFI_BOOT_SCRIPT_GENERIC_HEADER *Header;\r
203 EFI_BOOT_SCRIPT_TABLE_HEADER *TableInfo;\r
204 EFI_BOOT_SCRIPT_IO_WRITE *IoWrite;\r
205 EFI_BOOT_SCRIPT_IO_READ_WRITE *IoReadWrite;\r
206 EFI_BOOT_SCRIPT_MEM_WRITE *MemWrite;\r
207 EFI_BOOT_SCRIPT_MEM_READ_WRITE *MemReadWrite;\r
208 EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE *PciWrite;\r
209 EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE *PciReadWrite;\r
210 EFI_BOOT_SCRIPT_SMBUS_EXECUTE *SmbusExecute;\r
211 EFI_BOOT_SCRIPT_STALL *Stall;\r
212 EFI_BOOT_SCRIPT_DISPATCH *Dispatch;\r
213 EFI_BOOT_SCRIPT_DISPATCH_2 *Dispatch2; \r
214 EFI_BOOT_SCRIPT_INFORMATION *Information;\r
215 EFI_BOOT_SCRIPT_TERMINATE *Terminate;\r
216 EFI_BOOT_SCRIPT_COMMON_HEADER *CommonHeader;\r
217 UINT8 *Raw;\r
218} BOOT_SCRIPT_POINTERS;\r
219\r
220#ifndef __GNUC__\r
221#pragma pack()\r
222#endif\r
223\r
224#endif\r