]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/IpmiNetFnChassis.h
MdePkg: TpmPtp: Add CapCRBIdleBypass definition
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / IpmiNetFnChassis.h
CommitLineData
e59a797f
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
25517f7c 10 Copyright (c) 1999 - 2018, Intel Corporation. All rights reserved.<BR>\r
e59a797f
DB
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 _IPMI_NET_FN_CHASSIS_H_\r
21#define _IPMI_NET_FN_CHASSIS_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
25517f7c
HW
41typedef struct {\r
42 UINT8 CompletionCode;\r
43 UINT8 CapabilitiesFlags;\r
44 UINT8 ChassisFruInfoDeviceAddress;\r
45 UINT8 ChassisSDRDeviceAddress;\r
46 UINT8 ChassisSELDeviceAddress;\r
47 UINT8 ChassisSystemManagementDeviceAddress;\r
48 UINT8 ChassisBridgeDeviceAddress;\r
49} IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE;\r
e59a797f
DB
50\r
51//\r
52// Definitions for Get Chassis Status command\r
53//\r
54#define IPMI_CHASSIS_GET_STATUS 0x01\r
55\r
56//\r
57// Constants and Structure definitions for "Get Chassis Status" command to follow here\r
58//\r
25517f7c
HW
59typedef struct {\r
60 UINT8 CompletionCode;\r
61 UINT8 CurrentPowerState;\r
62 UINT8 LastPowerEvent;\r
63 UINT8 MiscChassisState;\r
64 UINT8 FrontPanelButtonCapabilities;\r
65} IPMI_GET_CHASSIS_STATUS_RESPONSE;\r
e59a797f
DB
66\r
67//\r
68// Definitions for Chassis Control command\r
69//\r
70#define IPMI_CHASSIS_CONTROL 0x02\r
71\r
72//\r
73// Constants and Structure definitions for "Chassis Control" command to follow here\r
74//\r
aeb6f576
HW
75typedef union {\r
76 struct {\r
77 UINT8 ChassisControl:4;\r
78 UINT8 Reserved:4;\r
79 } Bits;\r
80 UINT8 Uint8;\r
81} IPMI_CHASSIS_CONTROL_CHASSIS_CONTROL;\r
82\r
25517f7c 83typedef struct {\r
aeb6f576 84 IPMI_CHASSIS_CONTROL_CHASSIS_CONTROL ChassisControl;\r
25517f7c 85} IPMI_CHASSIS_CONTROL_REQUEST;\r
e59a797f
DB
86\r
87//\r
88// Definitions for Chassis Reset command\r
89//\r
90#define IPMI_CHASSIS_RESET 0x03\r
91\r
92//\r
93// Constants and Structure definitions for "Chassis Reset" command to follow here\r
94//\r
95\r
96//\r
97// Definitions for Chassis Identify command\r
98//\r
99#define IPMI_CHASSIS_IDENTIFY 0x04\r
100\r
101//\r
102// Constants and Structure definitions for "Chassis Identify" command to follow here\r
103//\r
104\r
105//\r
106// Definitions for Set Chassis Capabilities command\r
107//\r
108#define IPMI_CHASSIS_SET_CAPABILITIES 0x05\r
109\r
110//\r
111// Constants and Structure definitions for "Set Chassis Capabilities" command to follow here\r
112//\r
113\r
114//\r
115// Definitions for Set Power Restore Policy command\r
116//\r
117#define IPMI_CHASSIS_SET_POWER_RESTORE_POLICY 0x06\r
118\r
119//\r
120// Constants and Structure definitions for "Set Power Restore Policy" command to follow here\r
121//\r
aeb6f576
HW
122typedef union {\r
123 struct {\r
124 UINT8 PowerRestorePolicy : 3;\r
125 UINT8 Reserved : 5;\r
126 } Bits;\r
127 UINT8 Uint8;\r
128} IPMI_POWER_RESTORE_POLICY;\r
129\r
25517f7c 130typedef struct {\r
aeb6f576 131 IPMI_POWER_RESTORE_POLICY PowerRestorePolicy;\r
25517f7c
HW
132} IPMI_SET_POWER_RESTORE_POLICY_REQUEST;\r
133\r
134typedef struct {\r
135 UINT8 CompletionCode;\r
136 UINT8 PowerRestorePolicySupport;\r
137} IPMI_SET_POWER_RESTORE_POLICY_RESPONSE;\r
e59a797f
DB
138\r
139//\r
140// Definitions for Get System Restart Cause command\r
141//\r
142#define IPMI_CHASSIS_GET_SYSTEM_RESTART_CAUSE 0x07\r
143\r
144//\r
145// Constants and Structure definitions for "Get System Restart Cause" command to follow here\r
146//\r
aeb6f576
HW
147#define IPMI_SYSTEM_RESTART_CAUSE_UNKNOWN 0x0\r
148#define IPMI_SYSTEM_RESTART_CAUSE_CHASSIS_CONTROL_COMMAND 0x1\r
149#define IPMI_SYSTEM_RESTART_CAUSE_PUSHBUTTON_RESET 0x2\r
150#define IPMI_SYSTEM_RESTART_CAUSE_PUSHBUTTON_POWERUP 0x3\r
151#define IPMI_SYSTEM_RESTART_CAUSE_WATCHDOG_EXPIRE 0x4\r
152#define IPMI_SYSTEM_RESTART_CAUSE_OEM 0x5\r
153#define IPMI_SYSTEM_RESTART_CAUSE_AUTO_POWER_ALWAYS_RESTORE 0x6\r
154#define IPMI_SYSTEM_RESTART_CAUSE_AUTO_POWER_RESTORE_PREV 0x7\r
155#define IPMI_SYSTEM_RESTART_CAUSE_PEF_RESET 0x8\r
156#define IPMI_SYSTEM_RESTART_CAUSE_PEF_POWERCYCLE 0x9\r
157#define IPMI_SYSTEM_RESTART_CAUSE_SOFT_RESET 0xA\r
158#define IPMI_SYSTEM_RESTART_CAUSE_RTC_POWERUP 0xB\r
159\r
160typedef union {\r
161 struct {\r
162 UINT8 Cause:4;\r
163 UINT8 Reserved:4;\r
164 } Bits;\r
165 UINT8 Uint8;\r
e59a797f
DB
166} IPMI_SYSTEM_RESTART_CAUSE;\r
167\r
168typedef struct {\r
aeb6f576
HW
169 UINT8 CompletionCode;\r
170 IPMI_SYSTEM_RESTART_CAUSE RestartCause;\r
171 UINT8 ChannelNumber;\r
aeff1d6e 172} IPMI_GET_SYSTEM_RESTART_CAUSE_RESPONSE;\r
e59a797f
DB
173\r
174//\r
175// Definitions for Set System BOOT options command\r
176//\r
177#define IPMI_CHASSIS_SET_SYSTEM_BOOT_OPTIONS 0x08\r
178\r
179//\r
180// Constants and Structure definitions for "Set System boot options" command to follow here\r
181//\r
aeb6f576
HW
182typedef union {\r
183 struct {\r
184 UINT8 ParameterSelector:7;\r
185 UINT8 MarkParameterInvalid:1;\r
186 } Bits;\r
187 UINT8 Uint8;\r
188} IPMI_SET_BOOT_OPTIONS_PARAMETER_VALID;\r
189\r
e59a797f 190typedef struct {\r
aeb6f576
HW
191 IPMI_SET_BOOT_OPTIONS_PARAMETER_VALID ParameterValid;\r
192 UINT8 ParameterData[0];\r
e59a797f
DB
193} IPMI_SET_BOOT_OPTIONS_REQUEST;\r
194\r
e59a797f 195//\r
25517f7c 196// Definitions for Get System Boot options command\r
e59a797f
DB
197//\r
198#define IPMI_CHASSIS_GET_SYSTEM_BOOT_OPTIONS 0x09\r
199\r
200//\r
201// Constants and Structure definitions for "Get System boot options" command to follow here\r
202//\r
aeb6f576
HW
203typedef union {\r
204 struct {\r
205 UINT8 ParameterSelector:7;\r
206 UINT8 Reserved:1;\r
207 } Bits;\r
208 UINT8 Uint8;\r
209} IPMI_GET_BOOT_OPTIONS_PARAMETER_SELECTOR;\r
210\r
aeff1d6e 211typedef struct {\r
aeb6f576
HW
212 IPMI_GET_BOOT_OPTIONS_PARAMETER_SELECTOR ParameterSelector;\r
213 UINT8 SetSelector;\r
214 UINT8 BlockSelector;\r
aeff1d6e
DB
215} IPMI_GET_BOOT_OPTIONS_REQUEST;\r
216\r
e59a797f
DB
217typedef struct {\r
218 UINT8 Parameter;\r
219 UINT8 Valid;\r
220 UINT8 Data1;\r
221 UINT8 Data2;\r
222 UINT8 Data3;\r
223 UINT8 Data4;\r
224 UINT8 Data5;\r
225} IPMI_GET_THE_SYSTEM_BOOT_OPTIONS;\r
226\r
227typedef struct {\r
228 UINT8 ParameterVersion;\r
229 UINT8 ParameterValid;\r
230 UINT8 ChannelNumber;\r
231 UINT32 SessionId;\r
232 UINT32 TimeStamp;\r
233 UINT8 Reserved[3];\r
234} IPMI_BOOT_INITIATOR;\r
235\r
25517f7c
HW
236//\r
237// Definitions for boot option parameter selector\r
238//\r
239#define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_SET_IN_PROGRESS 0x0\r
240#define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_SERVICE_PARTITION_SELECTOR 0x1\r
241#define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_SERVICE_PARTITION_SCAN 0x2\r
242#define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_BMC_BOOT_FLAG 0x3\r
243#define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_INFO_ACK 0x4\r
244#define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_FLAGS 0x5\r
245#define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_INITIATOR_INFO 0x6\r
246#define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_INITIATOR_MAILBOX 0x7\r
247#define IPMI_BOOT_OPTIONS_PARAMETER_OEM_BEGIN 0x60\r
248#define IPMI_BOOT_OPTIONS_PARAMETER_OEM_END 0x7F\r
249\r
e59a797f
DB
250//\r
251// Response Parameters for IPMI Get Boot Options\r
252//\r
aeb6f576
HW
253typedef union {\r
254 struct {\r
255 UINT8 SetInProgress : 2;\r
256 UINT8 Reserved : 6;\r
257 } Bits;\r
258 UINT8 Uint8;\r
e59a797f
DB
259} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0;\r
260\r
261typedef struct {\r
262 UINT8 ServicePartitionSelector;\r
263} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1;\r
264\r
aeb6f576
HW
265typedef union {\r
266 struct {\r
267 UINT8 ServicePartitionDiscovered : 1;\r
268 UINT8 ServicePartitionScanRequest : 1;\r
269 UINT8 Reserved: 6;\r
270 } Bits;\r
271 UINT8 Uint8;\r
e59a797f
DB
272} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2;\r
273\r
aeb6f576
HW
274typedef union {\r
275 struct {\r
276 UINT8 BmcBootFlagValid : 5;\r
277 UINT8 Reserved : 3;\r
278 } Bits;\r
279 UINT8 Uint8;\r
e59a797f
DB
280} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3;\r
281\r
282typedef struct {\r
283 UINT8 WriteMask;\r
284 UINT8 BootInitiatorAcknowledgeData;\r
285} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4;\r
286\r
25517f7c
HW
287//\r
288// Definitions for the 'Boot device selector' field of Boot Option Parameters #5\r
289//\r
290#define IPMI_BOOT_DEVICE_SELECTOR_NO_OVERRIDE 0x0\r
291#define IPMI_BOOT_DEVICE_SELECTOR_PXE 0x1\r
292#define IPMI_BOOT_DEVICE_SELECTOR_HARDDRIVE 0x2\r
293#define IPMI_BOOT_DEVICE_SELECTOR_HARDDRIVE_SAFE_MODE 0x3\r
294#define IPMI_BOOT_DEVICE_SELECTOR_DIAGNOSTIC_PARTITION 0x4\r
295#define IPMI_BOOT_DEVICE_SELECTOR_CD_DVD 0x5\r
296#define IPMI_BOOT_DEVICE_SELECTOR_BIOS_SETUP 0x6\r
297#define IPMI_BOOT_DEVICE_SELECTOR_REMOTE_FLOPPY 0x7\r
298#define IPMI_BOOT_DEVICE_SELECTOR_REMOTE_CD_DVD 0x8\r
299#define IPMI_BOOT_DEVICE_SELECTOR_PRIMARY_REMOTE_MEDIA 0x9\r
300#define IPMI_BOOT_DEVICE_SELECTOR_REMOTE_HARDDRIVE 0xB\r
301#define IPMI_BOOT_DEVICE_SELECTOR_FLOPPY 0xF\r
302\r
e59a797f
DB
303#define BOOT_OPTION_HANDLED_BY_BIOS 0x01\r
304\r
25517f7c
HW
305//\r
306// Constant definitions for the 'BIOS Mux Control Override' field of Boot Option Parameters #5\r
307//\r
308#define BIOS_MUX_CONTROL_OVERRIDE_RECOMMEND_SETTING 0x00\r
309#define BIOS_MUX_CONTROL_OVERRIDE_FORCE_TO_BMC 0x01\r
310#define BIOS_MUX_CONTROL_OVERRIDE_FORCE_TO_SYSTEM 0x02\r
311\r
aeb6f576
HW
312typedef union {\r
313 struct {\r
314 UINT8 Reserved:5;\r
315 UINT8 BiosBootType:1;\r
316 UINT8 PersistentOptions:1;\r
317 UINT8 BootFlagValid:1;\r
318 } Bits;\r
319 UINT8 Uint8;\r
320} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_1;\r
321\r
322typedef union {\r
323 struct {\r
324 UINT8 LockReset:1;\r
325 UINT8 ScreenBlank:1;\r
326 UINT8 BootDeviceSelector:4;\r
327 UINT8 LockKeyboard:1;\r
328 UINT8 CmosClear:1;\r
329 } Bits;\r
330 UINT8 Uint8;\r
331} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_2;\r
332\r
333typedef union {\r
334 struct {\r
335 UINT8 ConsoleRedirection:2;\r
336 UINT8 LockSleep:1;\r
337 UINT8 UserPasswordBypass:1;\r
338 UINT8 ForceProgressEventTrap:1;\r
339 UINT8 BiosVerbosity:2;\r
340 UINT8 LockPower:1;\r
341 } Bits;\r
342 UINT8 Uint8;\r
343} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_3;\r
344\r
345typedef union {\r
346 struct {\r
347 UINT8 BiosMuxControlOverride:3;\r
348 UINT8 BiosSharedModeOverride:1;\r
349 UINT8 Reserved:4;\r
350 } Bits;\r
351 UINT8 Uint8;\r
352} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_4;\r
353\r
354typedef union {\r
355 struct {\r
356 UINT8 DeviceInstanceSelector:5;\r
357 UINT8 Reserved:3;\r
358 } Bits;\r
359 UINT8 Uint8;\r
360} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_5;\r
361\r
e59a797f 362typedef struct {\r
aeb6f576
HW
363 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_1 Data1;\r
364 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_2 Data2;\r
365 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_3 Data3;\r
366 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_4 Data4;\r
367 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_5 Data5;\r
e59a797f
DB
368} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5;\r
369\r
aeb6f576
HW
370typedef union {\r
371 struct {\r
372 UINT8 ChannelNumber:4;\r
373 UINT8 Reserved:4;\r
374 } Bits;\r
375 UINT8 Uint8;\r
376} IPMI_BOOT_OPTIONS_CHANNEL_NUMBER;\r
377\r
e59a797f 378typedef struct {\r
aeb6f576
HW
379 IPMI_BOOT_OPTIONS_CHANNEL_NUMBER ChannelNumber;\r
380 UINT8 SessionId[4];\r
381 UINT8 BootInfoTimeStamp[4];\r
e59a797f
DB
382} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6;\r
383\r
384typedef struct {\r
385 UINT8 SetSelector;\r
386 UINT8 BlockData[16];\r
387} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7;\r
388\r
389typedef union {\r
390 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0 Parm0;\r
391 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1 Parm1;\r
392 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2 Parm2;\r
393 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3 Parm3;\r
394 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4 Parm4;\r
395 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5 Parm5;\r
396 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6 Parm6;\r
397 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7 Parm7;\r
398} IPMI_BOOT_OPTIONS_PARAMETERS;\r
399\r
aeb6f576
HW
400typedef union {\r
401 struct {\r
402 UINT8 ParameterVersion:4;\r
403 UINT8 Reserved:4;\r
404 } Bits;\r
405 UINT8 Uint8;\r
406} IPMI_GET_BOOT_OPTIONS_PARAMETER_VERSION;\r
407\r
408typedef union {\r
409 struct {\r
410 UINT8 ParameterSelector:7;\r
411 UINT8 ParameterValid:1;\r
412 } Bits;\r
413 UINT8 Uint8;\r
414} IPMI_GET_BOOT_OPTIONS_PARAMETER_VALID;\r
415\r
e59a797f 416typedef struct {\r
aeb6f576
HW
417 UINT8 CompletionCode;\r
418 IPMI_GET_BOOT_OPTIONS_PARAMETER_VERSION ParameterVersion;\r
419 IPMI_GET_BOOT_OPTIONS_PARAMETER_VALID ParameterValid;\r
420 UINT8 ParameterData[0];\r
e59a797f
DB
421} IPMI_GET_BOOT_OPTIONS_RESPONSE;\r
422\r
423//\r
424// Definitions for Set front panel button enables command\r
425//\r
aeff1d6e 426#define IPMI_CHASSIS_SET_FRONT_PANEL_BUTTON_ENABLES 0x0A\r
e59a797f 427\r
e59a797f
DB
428//\r
429// Constants and Structure definitions for "Set front panel button enables" command to follow here\r
430//\r
aeb6f576
HW
431typedef union {\r
432 struct {\r
433 UINT8 DisablePoweroffButton:1;\r
434 UINT8 DisableResetButton:1;\r
435 UINT8 DisableDiagnosticInterruptButton:1;\r
436 UINT8 DisableStandbyButton:1;\r
437 UINT8 Reserved:4;\r
438 } Bits;\r
439 UINT8 Uint8;\r
440} IPMI_FRONT_PANEL_BUTTON_ENABLES;\r
441\r
442typedef struct {\r
443 IPMI_FRONT_PANEL_BUTTON_ENABLES FrontPanelButtonEnables;\r
444} IPMI_CHASSIS_SET_FRONT_PANEL_BUTTON_ENABLES_REQUEST;\r
e59a797f
DB
445\r
446//\r
447// Definitions for Set Power Cycle Interval command\r
448//\r
449#define IPMI_CHASSIS_SET_POWER_CYCLE_INTERVALS 0x0B\r
450\r
451//\r
452// Constants and Structure definitions for "Set Power Cycle Interval" command to follow here\r
453//\r
454\r
455//\r
456// Definitions for Get POH Counter command\r
457//\r
458#define IPMI_CHASSIS_GET_POH_COUNTER 0x0F\r
459\r
460//\r
461// Constants and Structure definitions for "Get POH Counter" command to follow here\r
462//\r
463#pragma pack()\r
464#endif\r