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 SPDX-License-Identifier: BSD-2-Clause-Patent
14 #ifndef _IPMI_NET_FN_CHASSIS_H_
15 #define _IPMI_NET_FN_CHASSIS_H_
19 // Net function definition for Chassis command
21 #define IPMI_NETFN_CHASSIS 0x00
24 // Below is Definitions for Chassis commands (Chapter 28)
28 // Definitions for Get Chassis Capabilities command
30 #define IPMI_CHASSIS_GET_CAPABILITIES 0x00
33 // Constants and Structure definitions for "Get Chassis Capabilities" command to follow here
37 UINT8 CapabilitiesFlags
;
38 UINT8 ChassisFruInfoDeviceAddress
;
39 UINT8 ChassisSDRDeviceAddress
;
40 UINT8 ChassisSELDeviceAddress
;
41 UINT8 ChassisSystemManagementDeviceAddress
;
42 UINT8 ChassisBridgeDeviceAddress
;
43 } IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE
;
46 // Definitions for Get Chassis Status command
48 #define IPMI_CHASSIS_GET_STATUS 0x01
51 // Constants and Structure definitions for "Get Chassis Status" command to follow here
55 UINT8 CurrentPowerState
;
57 UINT8 MiscChassisState
;
58 UINT8 FrontPanelButtonCapabilities
;
59 } IPMI_GET_CHASSIS_STATUS_RESPONSE
;
62 // Definitions for Chassis Control command
64 #define IPMI_CHASSIS_CONTROL 0x02
67 // Constants and Structure definitions for "Chassis Control" command to follow here
71 UINT8 ChassisControl
: 4;
75 } IPMI_CHASSIS_CONTROL_CHASSIS_CONTROL
;
78 IPMI_CHASSIS_CONTROL_CHASSIS_CONTROL ChassisControl
;
79 } IPMI_CHASSIS_CONTROL_REQUEST
;
82 // Definitions for Chassis Reset command
84 #define IPMI_CHASSIS_RESET 0x03
87 // Constants and Structure definitions for "Chassis Reset" command to follow here
91 // Definitions for Chassis Identify command
93 #define IPMI_CHASSIS_IDENTIFY 0x04
96 // Constants and Structure definitions for "Chassis Identify" command to follow here
100 // Definitions for Set Chassis Capabilities command
102 #define IPMI_CHASSIS_SET_CAPABILITIES 0x05
105 // Constants and Structure definitions for "Set Chassis Capabilities" command to follow here
109 // Definitions for Set Power Restore Policy command
111 #define IPMI_CHASSIS_SET_POWER_RESTORE_POLICY 0x06
114 // Constants and Structure definitions for "Set Power Restore Policy" command to follow here
118 UINT8 PowerRestorePolicy
: 3;
122 } IPMI_POWER_RESTORE_POLICY
;
125 IPMI_POWER_RESTORE_POLICY PowerRestorePolicy
;
126 } IPMI_SET_POWER_RESTORE_POLICY_REQUEST
;
129 UINT8 CompletionCode
;
130 UINT8 PowerRestorePolicySupport
;
131 } IPMI_SET_POWER_RESTORE_POLICY_RESPONSE
;
134 // Definitions for Get System Restart Cause command
136 #define IPMI_CHASSIS_GET_SYSTEM_RESTART_CAUSE 0x07
139 // Constants and Structure definitions for "Get System Restart Cause" command to follow here
141 #define IPMI_SYSTEM_RESTART_CAUSE_UNKNOWN 0x0
142 #define IPMI_SYSTEM_RESTART_CAUSE_CHASSIS_CONTROL_COMMAND 0x1
143 #define IPMI_SYSTEM_RESTART_CAUSE_PUSHBUTTON_RESET 0x2
144 #define IPMI_SYSTEM_RESTART_CAUSE_PUSHBUTTON_POWERUP 0x3
145 #define IPMI_SYSTEM_RESTART_CAUSE_WATCHDOG_EXPIRE 0x4
146 #define IPMI_SYSTEM_RESTART_CAUSE_OEM 0x5
147 #define IPMI_SYSTEM_RESTART_CAUSE_AUTO_POWER_ALWAYS_RESTORE 0x6
148 #define IPMI_SYSTEM_RESTART_CAUSE_AUTO_POWER_RESTORE_PREV 0x7
149 #define IPMI_SYSTEM_RESTART_CAUSE_PEF_RESET 0x8
150 #define IPMI_SYSTEM_RESTART_CAUSE_PEF_POWERCYCLE 0x9
151 #define IPMI_SYSTEM_RESTART_CAUSE_SOFT_RESET 0xA
152 #define IPMI_SYSTEM_RESTART_CAUSE_RTC_POWERUP 0xB
160 } IPMI_SYSTEM_RESTART_CAUSE
;
163 UINT8 CompletionCode
;
164 IPMI_SYSTEM_RESTART_CAUSE RestartCause
;
166 } IPMI_GET_SYSTEM_RESTART_CAUSE_RESPONSE
;
169 // Definitions for Set System BOOT options command
171 #define IPMI_CHASSIS_SET_SYSTEM_BOOT_OPTIONS 0x08
174 // Constants and Structure definitions for "Set System boot options" command to follow here
178 UINT8 ParameterSelector
: 7;
179 UINT8 MarkParameterInvalid
: 1;
182 } IPMI_SET_BOOT_OPTIONS_PARAMETER_VALID
;
185 IPMI_SET_BOOT_OPTIONS_PARAMETER_VALID ParameterValid
;
186 UINT8 ParameterData
[0];
187 } IPMI_SET_BOOT_OPTIONS_REQUEST
;
190 UINT8 CompletionCode
: 8;
191 } IPMI_SET_BOOT_OPTIONS_RESPONSE
;
194 // Definitions for Get System Boot options command
196 #define IPMI_CHASSIS_GET_SYSTEM_BOOT_OPTIONS 0x09
199 // Constants and Structure definitions for "Get System boot options" command to follow here
203 UINT8 ParameterSelector
: 7;
207 } IPMI_GET_BOOT_OPTIONS_PARAMETER_SELECTOR
;
210 IPMI_GET_BOOT_OPTIONS_PARAMETER_SELECTOR ParameterSelector
;
213 } IPMI_GET_BOOT_OPTIONS_REQUEST
;
223 } IPMI_GET_THE_SYSTEM_BOOT_OPTIONS
;
226 UINT8 ParameterVersion
;
227 UINT8 ParameterValid
;
232 } IPMI_BOOT_INITIATOR
;
235 // Definitions for boot option parameter selector
237 #define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_SET_IN_PROGRESS 0x0
238 #define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_SERVICE_PARTITION_SELECTOR 0x1
239 #define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_SERVICE_PARTITION_SCAN 0x2
240 #define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_BMC_BOOT_FLAG 0x3
241 #define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_INFO_ACK 0x4
242 #define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_FLAGS 0x5
243 #define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_INITIATOR_INFO 0x6
244 #define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_INITIATOR_MAILBOX 0x7
245 #define IPMI_BOOT_OPTIONS_PARAMETER_OEM_BEGIN 0x60
246 #define IPMI_BOOT_OPTIONS_PARAMETER_OEM_END 0x7F
249 // Response Parameters for IPMI Get Boot Options
253 UINT8 SetInProgress
: 2;
257 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0
;
260 UINT8 ServicePartitionSelector
;
261 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1
;
265 UINT8 ServicePartitionDiscovered
: 1;
266 UINT8 ServicePartitionScanRequest
: 1;
270 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2
;
274 UINT8 BmcBootFlagValid
: 5;
278 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3
;
282 UINT8 BootInitiatorAcknowledgeData
;
283 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4
;
286 // Definitions for the 'Boot device selector' field of Boot Option Parameters #5
288 #define IPMI_BOOT_DEVICE_SELECTOR_NO_OVERRIDE 0x0
289 #define IPMI_BOOT_DEVICE_SELECTOR_PXE 0x1
290 #define IPMI_BOOT_DEVICE_SELECTOR_HARDDRIVE 0x2
291 #define IPMI_BOOT_DEVICE_SELECTOR_HARDDRIVE_SAFE_MODE 0x3
292 #define IPMI_BOOT_DEVICE_SELECTOR_DIAGNOSTIC_PARTITION 0x4
293 #define IPMI_BOOT_DEVICE_SELECTOR_CD_DVD 0x5
294 #define IPMI_BOOT_DEVICE_SELECTOR_BIOS_SETUP 0x6
295 #define IPMI_BOOT_DEVICE_SELECTOR_REMOTE_FLOPPY 0x7
296 #define IPMI_BOOT_DEVICE_SELECTOR_REMOTE_CD_DVD 0x8
297 #define IPMI_BOOT_DEVICE_SELECTOR_PRIMARY_REMOTE_MEDIA 0x9
298 #define IPMI_BOOT_DEVICE_SELECTOR_REMOTE_HARDDRIVE 0xB
299 #define IPMI_BOOT_DEVICE_SELECTOR_FLOPPY 0xF
301 #define BOOT_OPTION_HANDLED_BY_BIOS 0x01
304 // Constant definitions for the 'BIOS Mux Control Override' field of Boot Option Parameters #5
306 #define BIOS_MUX_CONTROL_OVERRIDE_RECOMMEND_SETTING 0x00
307 #define BIOS_MUX_CONTROL_OVERRIDE_FORCE_TO_BMC 0x01
308 #define BIOS_MUX_CONTROL_OVERRIDE_FORCE_TO_SYSTEM 0x02
313 UINT8 BiosBootType
: 1;
314 UINT8 PersistentOptions
: 1;
315 UINT8 BootFlagValid
: 1;
318 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_1
;
323 UINT8 ScreenBlank
: 1;
324 UINT8 BootDeviceSelector
: 4;
325 UINT8 LockKeyboard
: 1;
329 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_2
;
333 UINT8 ConsoleRedirection
: 2;
335 UINT8 UserPasswordBypass
: 1;
336 UINT8 ForceProgressEventTrap
: 1;
337 UINT8 BiosVerbosity
: 2;
341 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_3
;
345 UINT8 BiosMuxControlOverride
: 3;
346 UINT8 BiosSharedModeOverride
: 1;
350 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_4
;
354 UINT8 DeviceInstanceSelector
: 5;
358 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_5
;
361 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_1 Data1
;
362 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_2 Data2
;
363 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_3 Data3
;
364 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_4 Data4
;
365 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_5 Data5
;
366 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5
;
370 UINT8 ChannelNumber
: 4;
374 } IPMI_BOOT_OPTIONS_CHANNEL_NUMBER
;
377 IPMI_BOOT_OPTIONS_CHANNEL_NUMBER ChannelNumber
;
379 UINT8 BootInfoTimeStamp
[4];
380 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6
;
385 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7
;
388 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0 Parm0
;
389 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1 Parm1
;
390 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2 Parm2
;
391 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3 Parm3
;
392 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4 Parm4
;
393 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5 Parm5
;
394 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6 Parm6
;
395 IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7 Parm7
;
396 } IPMI_BOOT_OPTIONS_PARAMETERS
;
400 UINT8 ParameterVersion
: 4;
404 } IPMI_GET_BOOT_OPTIONS_PARAMETER_VERSION
;
408 UINT8 ParameterSelector
: 7;
409 UINT8 ParameterValid
: 1;
412 } IPMI_GET_BOOT_OPTIONS_PARAMETER_VALID
;
415 UINT8 CompletionCode
;
416 IPMI_GET_BOOT_OPTIONS_PARAMETER_VERSION ParameterVersion
;
417 IPMI_GET_BOOT_OPTIONS_PARAMETER_VALID ParameterValid
;
418 UINT8 ParameterData
[0];
419 } IPMI_GET_BOOT_OPTIONS_RESPONSE
;
422 // Definitions for Set front panel button enables command
424 #define IPMI_CHASSIS_SET_FRONT_PANEL_BUTTON_ENABLES 0x0A
427 // Constants and Structure definitions for "Set front panel button enables" command to follow here
431 UINT8 DisablePoweroffButton
: 1;
432 UINT8 DisableResetButton
: 1;
433 UINT8 DisableDiagnosticInterruptButton
: 1;
434 UINT8 DisableStandbyButton
: 1;
438 } IPMI_FRONT_PANEL_BUTTON_ENABLES
;
441 IPMI_FRONT_PANEL_BUTTON_ENABLES FrontPanelButtonEnables
;
442 } IPMI_CHASSIS_SET_FRONT_PANEL_BUTTON_ENABLES_REQUEST
;
445 // Definitions for Set Power Cycle Interval command
447 #define IPMI_CHASSIS_SET_POWER_CYCLE_INTERVALS 0x0B
450 // Constants and Structure definitions for "Set Power Cycle Interval" command to follow here
454 // Definitions for Get POH Counter command
456 #define IPMI_CHASSIS_GET_POH_COUNTER 0x0F
459 // Constants and Structure definitions for "Get POH Counter" command to follow here