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