]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/IpmiNetFnChassisDefinitions.h
MdePkg: Add 3 macro defined in latest TPM2 specification.
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / IpmiNetFnChassisDefinitions.h
CommitLineData
884a1730
DB
1/** @file\r
2 IPMI 2.0 definitions from the IPMI Specification Version 2.0, Revision 1.1.\r
3\r
4 This file contains all NetFn Chassis commands, including:\r
5 Chassis Commands (Chapter 28)\r
6\r
7 See IPMI specification, Appendix G, Command Assignments\r
8 and Appendix H, Sub-function Assignments.\r
9\r
10 Copyright (c) 1999 - 2015, Intel Corporation. All rights reserved.<BR>\r
11 This program and the accompanying materials\r
12 are licensed and made available under the terms and conditions of the BSD License\r
13 which accompanies this distribution. The full text of the license may be found at\r
14 http://opensource.org/licenses/bsd-license.php\r
15\r
16 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
17 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
18**/\r
19\r
20#ifndef _IPMINETFNCHASSISDEFINITIONS_H_\r
21#define _IPMINETFNCHASSISDEFINITIONS_H_\r
22\r
23#pragma pack (1)\r
24//\r
25// Net function definition for Chassis command\r
26//\r
27#define IPMI_NETFN_CHASSIS 0x00\r
28\r
29//\r
30// Below is Definitions for Chassis commands (Chapter 28)\r
31//\r
32\r
33//\r
34// Definitions for Get Chassis Capabilities command\r
35//\r
36#define IPMI_CHASSIS_GET_CAPABILITIES 0x00\r
37\r
38//\r
39// Constants and Structure definitions for "Get Chassis Capabilities" command to follow here\r
40//\r
41\r
42//\r
43// Definitions for Get Chassis Status command\r
44//\r
45#define IPMI_CHASSIS_GET_STATUS 0x01\r
46\r
47//\r
48// Constants and Structure definitions for "Get Chassis Status" command to follow here\r
49//\r
50\r
51//\r
52// Definitions for Chassis Control command\r
53//\r
54#define IPMI_CHASSIS_CONTROL 0x02\r
55\r
56//\r
57// Constants and Structure definitions for "Chassis Control" command to follow here\r
58//\r
59\r
60//\r
61// Definitions for Chassis Reset command\r
62//\r
63#define IPMI_CHASSIS_RESET 0x03\r
64\r
65//\r
66// Constants and Structure definitions for "Chassis Reset" command to follow here\r
67//\r
68\r
69//\r
70// Definitions for Chassis Identify command\r
71//\r
72#define IPMI_CHASSIS_IDENTIFY 0x04\r
73\r
74//\r
75// Constants and Structure definitions for "Chassis Identify" command to follow here\r
76//\r
77\r
78//\r
79// Definitions for Set Chassis Capabilities command\r
80//\r
81#define IPMI_CHASSIS_SET_CAPABILITIES 0x05\r
82\r
83//\r
84// Constants and Structure definitions for "Set Chassis Capabilities" command to follow here\r
85//\r
86\r
87//\r
88// Definitions for Set Power Restore Policy command\r
89//\r
90#define IPMI_CHASSIS_SET_POWER_RESTORE_POLICY 0x06\r
91\r
92//\r
93// Constants and Structure definitions for "Set Power Restore Policy" command to follow here\r
94//\r
95\r
96//\r
97// Definitions for Get System Restart Cause command\r
98//\r
99#define IPMI_CHASSIS_GET_SYSTEM_RESTART_CAUSE 0x07\r
100\r
101//\r
102// Constants and Structure definitions for "Get System Restart Cause" command to follow here\r
103//\r
104typedef enum {\r
105 Unknown,\r
106 ChassisControlCommand,\r
107 ResetViaPushButton,\r
108 PowerupViaPowerButton,\r
109 WatchdogExpiration,\r
110 Oem,\r
111 AutoPowerOnAlwaysRestore,\r
112 AutoPowerOnRestorePrevious,\r
113 ResetViaPef,\r
114 PowerCycleViaPef,\r
115 SoftReset,\r
116 PowerUpViaRtc\r
117} IPMI_SYSTEM_RESTART_CAUSE;\r
118\r
119typedef struct {\r
120 UINT8 Cause:4;\r
121 UINT8 Reserved:4;\r
122 UINT8 ChannelNumber;\r
123} GET_SYSTEM_RESTART_CAUSE_RESPONSE;\r
124\r
125//\r
126// Definitions for Set System BOOT options command\r
127//\r
128#define IPMI_CHASSIS_SET_SYSTEM_BOOT_OPTIONS 0x08\r
129\r
130//\r
131// Constants and Structure definitions for "Set System boot options" command to follow here\r
132//\r
133typedef struct {\r
134 UINT8 ParameterSelector:7;\r
135 UINT8 MarkParameterInvalid:1;\r
136 UINT8 ParameterData[1];\r
137} IPMI_SET_BOOT_OPTIONS_REQUEST;\r
138\r
139typedef struct {\r
140 UINT8 CompletionCode:8;\r
141} IPMI_SET_BOOT_OPTIONS_RESPONSE;\r
142\r
143//\r
144// Definitions for Get System BOOT options command\r
145//\r
146#define IPMI_CHASSIS_GET_SYSTEM_BOOT_OPTIONS 0x09\r
147\r
148//\r
149// Constants and Structure definitions for "Get System boot options" command to follow here\r
150//\r
151typedef struct {\r
152 UINT8 Parameter;\r
153 UINT8 Valid;\r
154 UINT8 Data1;\r
155 UINT8 Data2;\r
156 UINT8 Data3;\r
157 UINT8 Data4;\r
158 UINT8 Data5;\r
159} IPMI_GET_THE_SYSTEM_BOOT_OPTIONS;\r
160\r
161typedef struct {\r
162 UINT8 ParameterVersion;\r
163 UINT8 ParameterValid;\r
164 UINT8 ChannelNumber;\r
165 UINT32 SessionId;\r
166 UINT32 TimeStamp;\r
167 UINT8 Reserved[3];\r
168} IPMI_BOOT_INITIATOR;\r
169\r
170typedef struct {\r
171 UINT8 ParameterSelector;\r
172 UINT8 SetSelector;\r
173 UINT8 BlockSelector;\r
174} IPMI_GET_BOOT_OPTIONS_REQUEST;\r
175\r
176//\r
177// Response Parameters for IPMI Get Boot Options\r
178//\r
179typedef struct {\r
180 UINT8 SetInProgress: 2;\r
181 UINT8 Reserved: 6;\r
182} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0;\r
183\r
184typedef struct {\r
185 UINT8 ServicePartitionSelector;\r
186} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1;\r
187\r
188typedef struct {\r
189 UINT8 ServicePartitionDiscovered:1;\r
190 UINT8 ServicePartitionScanRequest:1;\r
191 UINT8 Reserved: 5;\r
192} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2;\r
193\r
194typedef struct {\r
195 UINT8 BmcBootFlagValid: 5;\r
196 UINT8 Reserved: 3;\r
197} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3;\r
198\r
199typedef struct {\r
200 UINT8 WriteMask;\r
201 UINT8 BootInitiatorAcknowledgeData;\r
202} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4;\r
203\r
204#define BOOT_OPTION_HANDLED_BY_BIOS 0x01\r
205\r
206typedef struct {\r
207 //\r
208 // Data 1\r
209 //\r
210 UINT8 Reserved0:6;\r
211 UINT8 PersistentOptions:1;\r
212 UINT8 BootFlagValid:1;\r
213 //\r
214 // Data 2\r
215 //\r
216 UINT8 LockReset:1;\r
217 UINT8 ScreenBlank:1;\r
218 UINT8 BootDeviceSelector:4;\r
219 UINT8 LockKeyboard:1;\r
220 UINT8 CmosClear:1;\r
221 //\r
222 //\r
223 // Data 3\r
224 UINT8 ConsoleRedirection:2;\r
225 UINT8 LockSleep:1;\r
226 UINT8 UserPasswordBypass:1;\r
227 UINT8 ForceProgressEventTrap:1;\r
228 UINT8 BiosVerbosity:2;\r
229 UINT8 LockPower:1;\r
230 //\r
231 // Data 4\r
232 //\r
233 UINT8 BiosMuxControlOverride:2;\r
234 UINT8 BiosSharedModeOverride:1;\r
235 UINT8 Reserved1:4;\r
236} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5;\r
237\r
238typedef struct {\r
239 UINT8 ChannelNumber:4;\r
240 UINT8 Reserved:4;\r
241 UINT8 SessionId[4];\r
242 UINT8 BootInfoTimeStamp[4];\r
243} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6;\r
244\r
245typedef struct {\r
246 UINT8 SetSelector;\r
247 UINT8 BlockData[16];\r
248} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7;\r
249\r
250typedef union {\r
251 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0 Parm0;\r
252 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1 Parm1;\r
253 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2 Parm2;\r
254 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3 Parm3;\r
255 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4 Parm4;\r
256 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5 Parm5;\r
257 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6 Parm6;\r
258 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7 Parm7;\r
259} IPMI_BOOT_OPTIONS_PARAMETERS;\r
260\r
261typedef struct {\r
262 UINT8 ParameterVersion:4;\r
263 UINT8 Reserved:4;\r
264 UINT8 ParameterSelector:7;\r
265 UINT8 ParameterValid:1;\r
266 UINT8 ParameterData[1];\r
267} IPMI_GET_BOOT_OPTIONS_RESPONSE;\r
268\r
269//\r
270// Definitions for Set front panel button enables command\r
271//\r
272#define IPMI_CHASSIS_SET_FP_BUTTON_ENABLES 0x0A\r
273\r
274typedef struct {\r
275 UINT8 DisablePoweroffButton:1;\r
276 UINT8 DisableResetButton:1;\r
277 UINT8 DisableDiagnosticInterruptButton:1;\r
278 UINT8 DisableStandbyButton:1;\r
279 UINT8 Reserved:4;\r
280} IPMI_SET_FRONT_PANEL_BUTTON_ENABLES_REQUEST;\r
281\r
282//\r
283// Constants and Structure definitions for "Set front panel button enables" command to follow here\r
284//\r
285\r
286//\r
287// Definitions for Set Power Cycle Interval command\r
288//\r
289#define IPMI_CHASSIS_SET_POWER_CYCLE_INTERVALS 0x0B\r
290\r
291//\r
292// Constants and Structure definitions for "Set Power Cycle Interval" command to follow here\r
293//\r
294\r
295//\r
296// Definitions for Get POH Counter command\r
297//\r
298#define IPMI_CHASSIS_GET_POH_COUNTER 0x0F\r
299\r
300//\r
301// Constants and Structure definitions for "Get POH Counter" command to follow here\r
302//\r
303#pragma pack()\r
304#endif\r