]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Common/BootScript.h
Changed invalid tool chain tag name to WARNING rather than an ERROR
[mirror_edk2.git] / MdePkg / Include / Common / BootScript.h
CommitLineData
878ddf1f 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
64ec22c0 38#define EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE 0x09\r
878ddf1f 39\r
40#define EFI_BOOT_SCRIPT_TABLE_OPCODE 0xAA\r
41#define EFI_BOOT_SCRIPT_TERMINATE_OPCODE 0xFF\r
42\r
43//\r
44// EFI Boot Script Width\r
45//\r
46typedef enum {\r
47 EfiBootScriptWidthUint8,\r
48 EfiBootScriptWidthUint16,\r
49 EfiBootScriptWidthUint32,\r
50 EfiBootScriptWidthUint64,\r
51 EfiBootScriptWidthFifoUint8,\r
52 EfiBootScriptWidthFifoUint16,\r
53 EfiBootScriptWidthFifoUint32,\r
54 EfiBootScriptWidthFifoUint64,\r
55 EfiBootScriptWidthFillUint8,\r
56 EfiBootScriptWidthFillUint16,\r
57 EfiBootScriptWidthFillUint32,\r
58 EfiBootScriptWidthFillUint64,\r
59 EfiBootScriptWidthMaximum\r
60} EFI_BOOT_SCRIPT_WIDTH;\r
61\r
62//\r
63// EFI Smbus Device Address, Smbus Device Command, Smbus Operation\r
64//\r
65typedef struct {\r
66 UINTN SmbusDeviceAddress : 7;\r
67} EFI_SMBUS_DEVICE_ADDRESS;\r
68\r
69typedef UINTN EFI_SMBUS_DEVICE_COMMAND;\r
70\r
71typedef enum _EFI_SMBUS_OPERATION\r
72{\r
73 EfiSmbusQuickRead,\r
74 EfiSmbusQuickWrite,\r
75 EfiSmbusReceiveByte,\r
76 EfiSmbusSendByte,\r
77 EfiSmbusReadByte,\r
78 EfiSmbusWriteByte,\r
79 EfiSmbusReadWord,\r
80 EfiSmbusWriteWord,\r
81 EfiSmbusReadBlock,\r
82 EfiSmbusWriteBlock,\r
83 EfiSmbusProcessCall,\r
84 EfiSmbusBWBRProcessCall\r
85} EFI_SMBUS_OPERATION;\r
86\r
87//\r
88// Boot Script Opcode Header Structure Definitions\r
89//\r
90\r
91typedef struct {\r
92 UINT16 OpCode;\r
93 UINT8 Length;\r
94} EFI_BOOT_SCRIPT_GENERIC_HEADER;\r
95\r
96typedef struct {\r
97 UINT16 OpCode;\r
98 UINT8 Length;\r
99 UINT16 Version;\r
100 UINT32 TableLength;\r
101 UINT16 Reserved[2];\r
102} EFI_BOOT_SCRIPT_TABLE_HEADER;\r
103\r
104typedef struct {\r
105 UINT16 OpCode;\r
106 UINT8 Length;\r
107 EFI_BOOT_SCRIPT_WIDTH Width;\r
108} EFI_BOOT_SCRIPT_COMMON_HEADER;\r
109\r
110typedef struct {\r
111 UINT16 OpCode;\r
112 UINT8 Length;\r
113 EFI_BOOT_SCRIPT_WIDTH Width;\r
114 UINTN Count;\r
115 UINT64 Address;\r
116} EFI_BOOT_SCRIPT_IO_WRITE;\r
117\r
118typedef struct {\r
119 UINT16 OpCode;\r
120 UINT8 Length;\r
121 EFI_BOOT_SCRIPT_WIDTH Width;\r
122 UINT64 Address;\r
123} EFI_BOOT_SCRIPT_IO_READ_WRITE;\r
124\r
125typedef struct {\r
126 UINT16 OpCode;\r
127 UINT8 Length;\r
128 EFI_BOOT_SCRIPT_WIDTH Width;\r
129 UINTN Count;\r
130 UINT64 Address;\r
131} EFI_BOOT_SCRIPT_MEM_WRITE;\r
132\r
133typedef struct {\r
134 UINT16 OpCode;\r
135 UINT8 Length;\r
136 EFI_BOOT_SCRIPT_WIDTH Width;\r
137 UINT64 Address;\r
138} EFI_BOOT_SCRIPT_MEM_READ_WRITE;\r
139\r
140typedef struct {\r
141 UINT16 OpCode;\r
142 UINT8 Length;\r
143 EFI_BOOT_SCRIPT_WIDTH Width;\r
144 UINTN Count;\r
145 UINT64 Address;\r
146} EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE;\r
147\r
148typedef struct {\r
149 UINT16 OpCode;\r
150 UINT8 Length;\r
151 EFI_BOOT_SCRIPT_WIDTH Width;\r
152 UINT64 Address;\r
153} EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE;\r
154\r
155typedef struct {\r
156 UINT16 OpCode;\r
157 UINT8 Length;\r
158 EFI_SMBUS_DEVICE_ADDRESS SlaveAddress;\r
159 EFI_SMBUS_DEVICE_COMMAND Command;\r
160 EFI_SMBUS_OPERATION Operation;\r
161 BOOLEAN PecCheck;\r
162 UINTN DataSize;\r
163} EFI_BOOT_SCRIPT_SMBUS_EXECUTE;\r
164\r
165typedef struct {\r
166 UINT16 OpCode;\r
167 UINT8 Length;\r
168 UINTN Duration;\r
169} EFI_BOOT_SCRIPT_STALL;\r
170\r
171typedef struct {\r
172 UINT16 OpCode;\r
173 UINT8 Length;\r
174 EFI_PHYSICAL_ADDRESS EntryPoint;\r
175} EFI_BOOT_SCRIPT_DISPATCH;\r
176\r
64ec22c0 177typedef struct {\r
178 UINT16 OpCode;\r
179 UINT8 Length;\r
180 EFI_PHYSICAL_ADDRESS EntryPoint;\r
181 EFI_PHYSICAL_ADDRESS Context;\r
182} EFI_BOOT_SCRIPT_DISPATCH_2;\r
183\r
878ddf1f 184typedef struct {\r
185 UINT16 OpCode;\r
186 UINT8 Length;\r
187} EFI_BOOT_SCRIPT_TERMINATE;\r
188\r
189typedef union {\r
190 EFI_BOOT_SCRIPT_GENERIC_HEADER *Header;\r
191 EFI_BOOT_SCRIPT_TABLE_HEADER *TableInfo;\r
192 EFI_BOOT_SCRIPT_IO_WRITE *IoWrite;\r
193 EFI_BOOT_SCRIPT_IO_READ_WRITE *IoReadWrite;\r
194 EFI_BOOT_SCRIPT_MEM_WRITE *MemWrite;\r
195 EFI_BOOT_SCRIPT_MEM_READ_WRITE *MemReadWrite;\r
196 EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE *PciWrite;\r
197 EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE *PciReadWrite;\r
198 EFI_BOOT_SCRIPT_SMBUS_EXECUTE *SmbusExecute;\r
199 EFI_BOOT_SCRIPT_STALL *Stall;\r
200 EFI_BOOT_SCRIPT_DISPATCH *Dispatch;\r
64ec22c0 201 EFI_BOOT_SCRIPT_DISPATCH_2 *Dispatch2; \r
878ddf1f 202 EFI_BOOT_SCRIPT_TERMINATE *Terminate;\r
203 EFI_BOOT_SCRIPT_COMMON_HEADER *CommonHeader;\r
204 UINT8 *Raw;\r
205} BOOT_SCRIPT_POINTERS;\r
206\r
207#endif\r