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