2 IPMI 2.0 definitions from the IPMI Specification Version 2.0, Revision 1.1.
4 This file contains all NetFn Chassis commands, including:
5 Chassis Commands (Chapter 28)
7 See IPMI specification, Appendix G, Command Assignments
8 and Appendix H, Sub-function Assignments.
10 Copyright (c) 1999 - 2018, Intel Corporation. All rights reserved.<BR>
11 This program and the accompanying materials
12 are licensed and made available under the terms and conditions of the BSD License
13 which accompanies this distribution. The full text of the license may be found at
14 http://opensource.org/licenses/bsd-license.php
16 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
17 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
20 #ifndef _IPMI_NET_FN_CHASSIS_H_
21 #define _IPMI_NET_FN_CHASSIS_H_
25 // Net function definition for Chassis command
27 #define IPMI_NETFN_CHASSIS 0x00
30 // Below is Definitions for Chassis commands (Chapter 28)
34 // Definitions for Get Chassis Capabilities command
36 #define IPMI_CHASSIS_GET_CAPABILITIES 0x00
39 // Constants and Structure definitions for "Get Chassis Capabilities" command to follow here
43 UINT8 CapabilitiesFlags
;
44 UINT8 ChassisFruInfoDeviceAddress
;
45 UINT8 ChassisSDRDeviceAddress
;
46 UINT8 ChassisSELDeviceAddress
;
47 UINT8 ChassisSystemManagementDeviceAddress
;
48 UINT8 ChassisBridgeDeviceAddress
;
49 } IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE
;
52 // Definitions for Get Chassis Status command
54 #define IPMI_CHASSIS_GET_STATUS 0x01
57 // Constants and Structure definitions for "Get Chassis Status" command to follow here
61 UINT8 CurrentPowerState
;
63 UINT8 MiscChassisState
;
64 UINT8 FrontPanelButtonCapabilities
;
65 } IPMI_GET_CHASSIS_STATUS_RESPONSE
;
68 // Definitions for Chassis Control command
70 #define IPMI_CHASSIS_CONTROL 0x02
73 // Constants and Structure definitions for "Chassis Control" command to follow here
77 UINT8 ChassisControl
:4;
81 } IPMI_CHASSIS_CONTROL_CHASSIS_CONTROL
;
84 IPMI_CHASSIS_CONTROL_CHASSIS_CONTROL ChassisControl
;
85 } IPMI_CHASSIS_CONTROL_REQUEST
;
88 // Definitions for Chassis Reset command
90 #define IPMI_CHASSIS_RESET 0x03
93 // Constants and Structure definitions for "Chassis Reset" command to follow here
97 // Definitions for Chassis Identify command
99 #define IPMI_CHASSIS_IDENTIFY 0x04
102 // Constants and Structure definitions for "Chassis Identify" command to follow here
106 // Definitions for Set Chassis Capabilities command
108 #define IPMI_CHASSIS_SET_CAPABILITIES 0x05
111 // Constants and Structure definitions for "Set Chassis Capabilities" command to follow here
115 // Definitions for Set Power Restore Policy command
117 #define IPMI_CHASSIS_SET_POWER_RESTORE_POLICY 0x06
120 // Constants and Structure definitions for "Set Power Restore Policy" command to follow here
124 UINT8 PowerRestorePolicy
: 3;
128 } IPMI_POWER_RESTORE_POLICY
;
131 IPMI_POWER_RESTORE_POLICY PowerRestorePolicy
;
132 } IPMI_SET_POWER_RESTORE_POLICY_REQUEST
;
135 UINT8 CompletionCode
;
136 UINT8 PowerRestorePolicySupport
;
137 } IPMI_SET_POWER_RESTORE_POLICY_RESPONSE
;
140 // Definitions for Get System Restart Cause command
142 #define IPMI_CHASSIS_GET_SYSTEM_RESTART_CAUSE 0x07
145 // Constants and Structure definitions for "Get System Restart Cause" command to follow here
147 #define IPMI_SYSTEM_RESTART_CAUSE_UNKNOWN 0x0
148 #define IPMI_SYSTEM_RESTART_CAUSE_CHASSIS_CONTROL_COMMAND 0x1
149 #define IPMI_SYSTEM_RESTART_CAUSE_PUSHBUTTON_RESET 0x2
150 #define IPMI_SYSTEM_RESTART_CAUSE_PUSHBUTTON_POWERUP 0x3
151 #define IPMI_SYSTEM_RESTART_CAUSE_WATCHDOG_EXPIRE 0x4
152 #define IPMI_SYSTEM_RESTART_CAUSE_OEM 0x5
153 #define IPMI_SYSTEM_RESTART_CAUSE_AUTO_POWER_ALWAYS_RESTORE 0x6
154 #define IPMI_SYSTEM_RESTART_CAUSE_AUTO_POWER_RESTORE_PREV 0x7
155 #define IPMI_SYSTEM_RESTART_CAUSE_PEF_RESET 0x8
156 #define IPMI_SYSTEM_RESTART_CAUSE_PEF_POWERCYCLE 0x9
157 #define IPMI_SYSTEM_RESTART_CAUSE_SOFT_RESET 0xA
158 #define IPMI_SYSTEM_RESTART_CAUSE_RTC_POWERUP 0xB
166 } IPMI_SYSTEM_RESTART_CAUSE
;
169 UINT8 CompletionCode
;
170 IPMI_SYSTEM_RESTART_CAUSE RestartCause
;
172 } IPMI_GET_SYSTEM_RESTART_CAUSE_RESPONSE
;
175 // Definitions for Set System BOOT options command
177 #define IPMI_CHASSIS_SET_SYSTEM_BOOT_OPTIONS 0x08
180 // Constants and Structure definitions for "Set System boot options" command to follow here
184 UINT8 ParameterSelector
:7;
185 UINT8 MarkParameterInvalid
:1;
188 } IPMI_SET_BOOT_OPTIONS_PARAMETER_VALID
;
191 IPMI_SET_BOOT_OPTIONS_PARAMETER_VALID ParameterValid
;
192 UINT8 ParameterData
[0];
193 } IPMI_SET_BOOT_OPTIONS_REQUEST
;
196 // Definitions for Get System Boot options command
198 #define IPMI_CHASSIS_GET_SYSTEM_BOOT_OPTIONS 0x09
201 // Constants and Structure definitions for "Get System boot options" command to follow here
205 UINT8 ParameterSelector
:7;
209 } IPMI_GET_BOOT_OPTIONS_PARAMETER_SELECTOR
;
212 IPMI_GET_BOOT_OPTIONS_PARAMETER_SELECTOR ParameterSelector
;
215 } IPMI_GET_BOOT_OPTIONS_REQUEST
;
225 } IPMI_GET_THE_SYSTEM_BOOT_OPTIONS
;
228 UINT8 ParameterVersion
;
229 UINT8 ParameterValid
;
234 } IPMI_BOOT_INITIATOR
;
237 // Definitions for boot option parameter selector
239 #define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_SET_IN_PROGRESS 0x0
240 #define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_SERVICE_PARTITION_SELECTOR 0x1
241 #define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_SERVICE_PARTITION_SCAN 0x2
242 #define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_BMC_BOOT_FLAG 0x3
243 #define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_INFO_ACK 0x4
244 #define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_FLAGS 0x5
245 #define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_INITIATOR_INFO 0x6
246 #define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_INITIATOR_MAILBOX 0x7
247 #define IPMI_BOOT_OPTIONS_PARAMETER_OEM_BEGIN 0x60
248 #define IPMI_BOOT_OPTIONS_PARAMETER_OEM_END 0x7F
251 // Response Parameters for IPMI Get Boot Options
255 UINT8 SetInProgress
: 2;
259 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0
;
262 UINT8 ServicePartitionSelector
;
263 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1
;
267 UINT8 ServicePartitionDiscovered
: 1;
268 UINT8 ServicePartitionScanRequest
: 1;
272 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2
;
276 UINT8 BmcBootFlagValid
: 5;
280 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3
;
284 UINT8 BootInitiatorAcknowledgeData
;
285 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4
;
288 // Definitions for the 'Boot device selector' field of Boot Option Parameters #5
290 #define IPMI_BOOT_DEVICE_SELECTOR_NO_OVERRIDE 0x0
291 #define IPMI_BOOT_DEVICE_SELECTOR_PXE 0x1
292 #define IPMI_BOOT_DEVICE_SELECTOR_HARDDRIVE 0x2
293 #define IPMI_BOOT_DEVICE_SELECTOR_HARDDRIVE_SAFE_MODE 0x3
294 #define IPMI_BOOT_DEVICE_SELECTOR_DIAGNOSTIC_PARTITION 0x4
295 #define IPMI_BOOT_DEVICE_SELECTOR_CD_DVD 0x5
296 #define IPMI_BOOT_DEVICE_SELECTOR_BIOS_SETUP 0x6
297 #define IPMI_BOOT_DEVICE_SELECTOR_REMOTE_FLOPPY 0x7
298 #define IPMI_BOOT_DEVICE_SELECTOR_REMOTE_CD_DVD 0x8
299 #define IPMI_BOOT_DEVICE_SELECTOR_PRIMARY_REMOTE_MEDIA 0x9
300 #define IPMI_BOOT_DEVICE_SELECTOR_REMOTE_HARDDRIVE 0xB
301 #define IPMI_BOOT_DEVICE_SELECTOR_FLOPPY 0xF
303 #define BOOT_OPTION_HANDLED_BY_BIOS 0x01
306 // Constant definitions for the 'BIOS Mux Control Override' field of Boot Option Parameters #5
308 #define BIOS_MUX_CONTROL_OVERRIDE_RECOMMEND_SETTING 0x00
309 #define BIOS_MUX_CONTROL_OVERRIDE_FORCE_TO_BMC 0x01
310 #define BIOS_MUX_CONTROL_OVERRIDE_FORCE_TO_SYSTEM 0x02
315 UINT8 BiosBootType
:1;
316 UINT8 PersistentOptions
:1;
317 UINT8 BootFlagValid
:1;
320 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_1
;
326 UINT8 BootDeviceSelector
:4;
327 UINT8 LockKeyboard
:1;
331 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_2
;
335 UINT8 ConsoleRedirection
:2;
337 UINT8 UserPasswordBypass
:1;
338 UINT8 ForceProgressEventTrap
:1;
339 UINT8 BiosVerbosity
:2;
343 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_3
;
347 UINT8 BiosMuxControlOverride
:3;
348 UINT8 BiosSharedModeOverride
:1;
352 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_4
;
356 UINT8 DeviceInstanceSelector
:5;
360 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_5
;
363 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_1 Data1
;
364 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_2 Data2
;
365 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_3 Data3
;
366 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_4 Data4
;
367 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_5 Data5
;
368 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5
;
372 UINT8 ChannelNumber
:4;
376 } IPMI_BOOT_OPTIONS_CHANNEL_NUMBER
;
379 IPMI_BOOT_OPTIONS_CHANNEL_NUMBER ChannelNumber
;
381 UINT8 BootInfoTimeStamp
[4];
382 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6
;
387 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7
;
390 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0 Parm0
;
391 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1 Parm1
;
392 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2 Parm2
;
393 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3 Parm3
;
394 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4 Parm4
;
395 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5 Parm5
;
396 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6 Parm6
;
397 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7 Parm7
;
398 } IPMI_BOOT_OPTIONS_PARAMETERS
;
402 UINT8 ParameterVersion
:4;
406 } IPMI_GET_BOOT_OPTIONS_PARAMETER_VERSION
;
410 UINT8 ParameterSelector
:7;
411 UINT8 ParameterValid
:1;
414 } IPMI_GET_BOOT_OPTIONS_PARAMETER_VALID
;
417 UINT8 CompletionCode
;
418 IPMI_GET_BOOT_OPTIONS_PARAMETER_VERSION ParameterVersion
;
419 IPMI_GET_BOOT_OPTIONS_PARAMETER_VALID ParameterValid
;
420 UINT8 ParameterData
[0];
421 } IPMI_GET_BOOT_OPTIONS_RESPONSE
;
424 // Definitions for Set front panel button enables command
426 #define IPMI_CHASSIS_SET_FRONT_PANEL_BUTTON_ENABLES 0x0A
429 // Constants and Structure definitions for "Set front panel button enables" command to follow here
433 UINT8 DisablePoweroffButton
:1;
434 UINT8 DisableResetButton
:1;
435 UINT8 DisableDiagnosticInterruptButton
:1;
436 UINT8 DisableStandbyButton
:1;
440 } IPMI_FRONT_PANEL_BUTTON_ENABLES
;
443 IPMI_FRONT_PANEL_BUTTON_ENABLES FrontPanelButtonEnables
;
444 } IPMI_CHASSIS_SET_FRONT_PANEL_BUTTON_ENABLES_REQUEST
;
447 // Definitions for Set Power Cycle Interval command
449 #define IPMI_CHASSIS_SET_POWER_CYCLE_INTERVALS 0x0B
452 // Constants and Structure definitions for "Set Power Cycle Interval" command to follow here
456 // Definitions for Get POH Counter command
458 #define IPMI_CHASSIS_GET_POH_COUNTER 0x0F
461 // Constants and Structure definitions for "Get POH Counter" command to follow here