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