]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Source/TianoTools/Include/Common/BootScript.h
Remove the dependence to MdePkg
[mirror_edk2.git] / Tools / Source / TianoTools / Include / Common / BootScript.h
1 /** @file
2 This file declares the related BootScript definitions and some SMBus definitions.
3
4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 Module Name: BootScript.h
14
15 @par Revision Reference:
16 These definitions are defined in BootScript Spec 0.91 and SmBus PPI spec 0.9.
17
18 **/
19
20 #ifndef _EFI_SCRIPT_H_
21 #define _EFI_SCRIPT_H_
22
23 #define EFI_ACPI_S3_RESUME_SCRIPT_TABLE 0x00
24
25 //
26 // Boot Script Opcode Definitions
27 //
28
29 #define EFI_BOOT_SCRIPT_IO_WRITE_OPCODE 0x00
30 #define EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE 0x01
31 #define EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE 0x02
32 #define EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE 0x03
33 #define EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE 0x04
34 #define EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE 0x05
35 #define EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE 0x06
36 #define EFI_BOOT_SCRIPT_STALL_OPCODE 0x07
37 #define EFI_BOOT_SCRIPT_DISPATCH_OPCODE 0x08
38
39 #define EFI_BOOT_SCRIPT_TABLE_OPCODE 0xAA
40 #define EFI_BOOT_SCRIPT_TERMINATE_OPCODE 0xFF
41
42 //
43 // EFI Boot Script Width
44 //
45 typedef enum {
46 EfiBootScriptWidthUint8,
47 EfiBootScriptWidthUint16,
48 EfiBootScriptWidthUint32,
49 EfiBootScriptWidthUint64,
50 EfiBootScriptWidthFifoUint8,
51 EfiBootScriptWidthFifoUint16,
52 EfiBootScriptWidthFifoUint32,
53 EfiBootScriptWidthFifoUint64,
54 EfiBootScriptWidthFillUint8,
55 EfiBootScriptWidthFillUint16,
56 EfiBootScriptWidthFillUint32,
57 EfiBootScriptWidthFillUint64,
58 EfiBootScriptWidthMaximum
59 } EFI_BOOT_SCRIPT_WIDTH;
60
61 //
62 // EFI Smbus Device Address, Smbus Device Command, Smbus Operation
63 //
64 typedef struct {
65 UINTN SmbusDeviceAddress : 7;
66 } EFI_SMBUS_DEVICE_ADDRESS;
67
68 typedef UINTN EFI_SMBUS_DEVICE_COMMAND;
69
70 typedef enum _EFI_SMBUS_OPERATION
71 {
72 EfiSmbusQuickRead,
73 EfiSmbusQuickWrite,
74 EfiSmbusReceiveByte,
75 EfiSmbusSendByte,
76 EfiSmbusReadByte,
77 EfiSmbusWriteByte,
78 EfiSmbusReadWord,
79 EfiSmbusWriteWord,
80 EfiSmbusReadBlock,
81 EfiSmbusWriteBlock,
82 EfiSmbusProcessCall,
83 EfiSmbusBWBRProcessCall
84 } EFI_SMBUS_OPERATION;
85
86 //
87 // Boot Script Opcode Header Structure Definitions
88 //
89
90 typedef struct {
91 UINT16 OpCode;
92 UINT8 Length;
93 } EFI_BOOT_SCRIPT_GENERIC_HEADER;
94
95 typedef struct {
96 UINT16 OpCode;
97 UINT8 Length;
98 UINT16 Version;
99 UINT32 TableLength;
100 UINT16 Reserved[2];
101 } EFI_BOOT_SCRIPT_TABLE_HEADER;
102
103 typedef struct {
104 UINT16 OpCode;
105 UINT8 Length;
106 EFI_BOOT_SCRIPT_WIDTH Width;
107 } EFI_BOOT_SCRIPT_COMMON_HEADER;
108
109 typedef struct {
110 UINT16 OpCode;
111 UINT8 Length;
112 EFI_BOOT_SCRIPT_WIDTH Width;
113 UINTN Count;
114 UINT64 Address;
115 } EFI_BOOT_SCRIPT_IO_WRITE;
116
117 typedef struct {
118 UINT16 OpCode;
119 UINT8 Length;
120 EFI_BOOT_SCRIPT_WIDTH Width;
121 UINT64 Address;
122 } EFI_BOOT_SCRIPT_IO_READ_WRITE;
123
124 typedef struct {
125 UINT16 OpCode;
126 UINT8 Length;
127 EFI_BOOT_SCRIPT_WIDTH Width;
128 UINTN Count;
129 UINT64 Address;
130 } EFI_BOOT_SCRIPT_MEM_WRITE;
131
132 typedef struct {
133 UINT16 OpCode;
134 UINT8 Length;
135 EFI_BOOT_SCRIPT_WIDTH Width;
136 UINT64 Address;
137 } EFI_BOOT_SCRIPT_MEM_READ_WRITE;
138
139 typedef struct {
140 UINT16 OpCode;
141 UINT8 Length;
142 EFI_BOOT_SCRIPT_WIDTH Width;
143 UINTN Count;
144 UINT64 Address;
145 } EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE;
146
147 typedef struct {
148 UINT16 OpCode;
149 UINT8 Length;
150 EFI_BOOT_SCRIPT_WIDTH Width;
151 UINT64 Address;
152 } EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE;
153
154 typedef struct {
155 UINT16 OpCode;
156 UINT8 Length;
157 EFI_SMBUS_DEVICE_ADDRESS SlaveAddress;
158 EFI_SMBUS_DEVICE_COMMAND Command;
159 EFI_SMBUS_OPERATION Operation;
160 BOOLEAN PecCheck;
161 UINTN DataSize;
162 } EFI_BOOT_SCRIPT_SMBUS_EXECUTE;
163
164 typedef struct {
165 UINT16 OpCode;
166 UINT8 Length;
167 UINTN 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 } EFI_BOOT_SCRIPT_TERMINATE;
180
181 typedef union {
182 EFI_BOOT_SCRIPT_GENERIC_HEADER *Header;
183 EFI_BOOT_SCRIPT_TABLE_HEADER *TableInfo;
184 EFI_BOOT_SCRIPT_IO_WRITE *IoWrite;
185 EFI_BOOT_SCRIPT_IO_READ_WRITE *IoReadWrite;
186 EFI_BOOT_SCRIPT_MEM_WRITE *MemWrite;
187 EFI_BOOT_SCRIPT_MEM_READ_WRITE *MemReadWrite;
188 EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE *PciWrite;
189 EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE *PciReadWrite;
190 EFI_BOOT_SCRIPT_SMBUS_EXECUTE *SmbusExecute;
191 EFI_BOOT_SCRIPT_STALL *Stall;
192 EFI_BOOT_SCRIPT_DISPATCH *Dispatch;
193 EFI_BOOT_SCRIPT_TERMINATE *Terminate;
194 EFI_BOOT_SCRIPT_COMMON_HEADER *CommonHeader;
195 UINT8 *Raw;
196 } BOOT_SCRIPT_POINTERS;
197
198 #endif