]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptInternalFormat.h
MdeModulePkg PiDxeS3BootScriptLib: Initialize the EFI_BOOT_SCRIPT_TABLE_HEADER.Version.
[mirror_edk2.git] / MdeModulePkg / Library / PiDxeS3BootScriptLib / BootScriptInternalFormat.h
CommitLineData
64d14edf 1/** @file\r
2 This file declares the internal Framework Boot Script format used by\r
3 the PI implementation of Script Saver and Executor.\r
4\r
0a4a5b7b 5 Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
64d14edf 6\r
7 This program and the accompanying materials\r
8 are licensed and made available under the terms and conditions\r
9 of the BSD License which accompanies this distribution. The\r
10 full text of the license may be found at\r
11 http://opensource.org/licenses/bsd-license.php\r
12\r
13 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
14 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
15\r
16**/\r
17\r
18#ifndef _BOOT_SCRIPT_INTERNAL_FORMAT_H_\r
19#define _BOOT_SCRIPT_INTERNAL_FORMAT_H_\r
20\r
21#pragma pack(1)\r
22\r
23//\r
24// Boot Script Opcode Header Structure Definitions\r
25//\r
26\r
27typedef struct {\r
28 UINT16 OpCode;\r
29 UINT8 Length;\r
30} EFI_BOOT_SCRIPT_GENERIC_HEADER;\r
31\r
32typedef struct {\r
33 UINT16 OpCode;\r
34 UINT8 Length;\r
35 UINT16 Version;\r
36 UINT32 TableLength;\r
37 UINT16 Reserved[2];\r
38} EFI_BOOT_SCRIPT_TABLE_HEADER;\r
39\r
40typedef struct {\r
41 UINT16 OpCode;\r
42 UINT8 Length;\r
43 UINT32 Width;\r
44} EFI_BOOT_SCRIPT_COMMON_HEADER;\r
45\r
46typedef struct {\r
47 UINT16 OpCode;\r
48 UINT8 Length;\r
49 UINT32 Width;\r
50 UINT32 Count;\r
51 UINT64 Address;\r
52} EFI_BOOT_SCRIPT_IO_WRITE;\r
53\r
54typedef struct {\r
55 UINT16 OpCode;\r
56 UINT8 Length;\r
57 UINT32 Width;\r
58 UINT64 Address;\r
59} EFI_BOOT_SCRIPT_IO_READ_WRITE;\r
60\r
61typedef struct {\r
62 UINT16 OpCode;\r
63 UINT8 Length;\r
64 UINT32 Width;\r
65 UINT32 Count;\r
66 UINT64 Address;\r
67} EFI_BOOT_SCRIPT_MEM_WRITE;\r
68\r
69typedef struct {\r
70 UINT16 OpCode;\r
71 UINT8 Length;\r
72 UINT32 Width;\r
73 UINT64 Address;\r
74} EFI_BOOT_SCRIPT_MEM_READ_WRITE;\r
75\r
76typedef struct {\r
77 UINT16 OpCode;\r
78 UINT8 Length;\r
79 UINT32 Width;\r
80 UINT32 Count;\r
81 UINT64 Address;\r
82} EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE;\r
83\r
84typedef struct {\r
85 UINT16 OpCode;\r
86 UINT8 Length;\r
87 UINT32 Width;\r
88 UINT32 Count;\r
89 UINT64 Address;\r
90 UINT16 Segment;\r
91} EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE;\r
92\r
93typedef struct {\r
94 UINT16 OpCode;\r
95 UINT8 Length;\r
96 UINT32 Width;\r
97 UINT64 Address;\r
98} EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE;\r
99\r
100typedef struct {\r
101 UINT16 OpCode;\r
102 UINT8 Length;\r
103 UINT32 Width;\r
104 UINT64 Address;\r
105 UINT16 Segment;\r
106} EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE;\r
107\r
108typedef struct {\r
109 UINT16 OpCode;\r
110 UINT8 Length;\r
111 UINT64 SmBusAddress;\r
112 UINT32 Operation;\r
113 UINT32 DataSize;\r
114} EFI_BOOT_SCRIPT_SMBUS_EXECUTE;\r
115\r
116typedef struct {\r
117 UINT16 OpCode;\r
118 UINT8 Length;\r
119 UINT64 Duration;\r
120} EFI_BOOT_SCRIPT_STALL;\r
121\r
122typedef struct {\r
123 UINT16 OpCode;\r
124 UINT8 Length;\r
125 EFI_PHYSICAL_ADDRESS EntryPoint;\r
126} EFI_BOOT_SCRIPT_DISPATCH;\r
127\r
128typedef struct {\r
129 UINT16 OpCode;\r
130 UINT8 Length;\r
131 EFI_PHYSICAL_ADDRESS EntryPoint;\r
132 EFI_PHYSICAL_ADDRESS Context;\r
133} EFI_BOOT_SCRIPT_DISPATCH_2;\r
134\r
135typedef struct {\r
136 UINT16 OpCode;\r
137 UINT8 Length;\r
138 UINT32 Width;\r
139 UINT64 Address;\r
140 UINT64 Duration;\r
141 UINT64 LoopTimes;\r
142} EFI_BOOT_SCRIPT_MEM_POLL;\r
143\r
144typedef struct {\r
145 UINT16 OpCode;\r
146 UINT8 Length;\r
93b21ade
SZ
147 UINT32 InformationLength;\r
148// UINT8 InformationData[InformationLength];\r
64d14edf 149} EFI_BOOT_SCRIPT_INFORMATION;\r
150\r
151typedef struct {\r
152 UINT16 OpCode;\r
153 UINT8 Length;\r
154 UINT32 Width;\r
155 UINT64 Address;\r
156 UINT64 Delay;\r
157} EFI_BOOT_SCRIPT_IO_POLL;\r
158\r
159typedef struct {\r
160 UINT16 OpCode;\r
161 UINT8 Length;\r
162 UINT32 Width;\r
163 UINT64 Address;\r
164 UINT64 Delay;\r
165} EFI_BOOT_SCRIPT_PCI_CONFIG_POLL;\r
166\r
167typedef struct {\r
168 UINT16 OpCode;\r
169 UINT8 Length;\r
170 UINT32 Width;\r
171 UINT64 Address;\r
172 UINT16 Segment; \r
173 UINT64 Delay;\r
174} EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL;\r
175\r
176typedef struct {\r
177 UINT16 OpCode;\r
178 UINT8 Length;\r
179} EFI_BOOT_SCRIPT_TERMINATE;\r
180\r
181\r
182#pragma pack()\r
183\r
184#define BOOT_SCRIPT_NODE_MAX_LENGTH 1024\r
185\r
0a4a5b7b
SZ
186#define BOOT_SCRIPT_TABLE_VERSION 0x0001\r
187\r
64d14edf 188#endif\r