Pages

Tuesday, April 30, 2013

[IPMI] Chassis Device Commands

[IPMI] Chassis Device Commands Get Chassis Capabilities - NetFn = Chassis (0x00h), CMD = 0x00h, Privilege Level = User, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x00 0x00
[ipmiutil]
ipmiutil cmd 00 20 00 00
icmd 00 20 00 00
[FreeIPMI]
ipmi-raw 0x00 0x00 0x00
ipmi-chassis --get-chassis-capabilities
| MS-DOS |
[ipmitool]
ipmitool 20 00 00
[ipmiutil]
ipmiutil cmd 00 20 00 00
icmd 00 20 00 00

For example
[IPMItool in Linux] Hint: hover over Place your mouse over the highlighted area in belowfor Response Data description
$ ipmitool raw 0x00 0x00
 00 Byte 2
Capabilities Flags
[7:4] - reserved
  [3] - 1b = provides power interlock (IPMI 1.5)
  [2] - 1b = provides Diagnostic Interrupt (FP NMI) (IPMI 1.5)
  [1] - 1b = provides Provides "Front Panel Lockout"
  [0] - 1b = Chassis provides intrusion (physical security) sensor
20 Byte 3
Chassis FRU Info Device Address
00h = unspecified
20 Byte 4
Chassis SDR Device Address
20 Byte 5
Chassis SEL Device Address
20 Byte 6
Chassis System Management Device Address
20 Byte 7
Chassis Bridge Device Address

[IPMIutil in Linux]
$ ipmiutil cmd 00 20 00 00
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=6]: 00 Byte 2
Capabilities Flags
[7:4] - reserved
  [3] - 1b = provides power interlock (IPMI 1.5)
  [2] - 1b = provides Diagnostic Interrupt (FP NMI) (IPMI 1.5)
  [1] - 1b = provides Provides "Front Panel Lockout"
  [0] - 1b = Chassis provides intrusion (physical security) sensor
20 Byte 3
Chassis FRU Info Device Address
00h = unspecified
20 Byte 4
Chassis SDR Device Address
20 Byte 5
Chassis SEL Device Address
20 Byte 6
Chassis System Management Device Address
20 Byte 7
Chassis Bridge Device Address

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x00 0x00
rcvd: 00 00 Byte 1
Completion Code
00h = Command Completed Normally
00 Byte 2
Capabilities Flags
[7:4] - reserved
  [3] - 1b = provides power interlock (IPMI 1.5)
  [2] - 1b = provides Diagnostic Interrupt (FP NMI) (IPMI 1.5)
  [1] - 1b = provides Provides "Front Panel Lockout"
  [0] - 1b = Chassis provides intrusion (physical security) sensor
20 Byte 3
Chassis FRU Info Device Address
00h = unspecified
20 Byte 4
Chassis SDR Device Address
20 Byte 5
Chassis SEL Device Address
20 Byte 6
Chassis System Management Device Address
20 Byte 7
Chassis Bridge Device Address

$ ipmi-chassis --get-chassis-capabilities
Intrusion sensor        : not provided
Front Panel Lockout     : not provided
Diagnostic Interrupt    : not provided
Power interlock         : not provided
FRU Info Device Address : 20h
SDR Device Address      : 20h
SEL Device Address      : 20h
Sys Mgmt Device Address : 20h
Bridge Device Address   : 20h


Get Chassis Status - NetFn = Chassis (0x00h), CMD = 0x01h, Privilege Level = User, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x00 0x01
ipmitool chassis status
ipmitool power status
ipmitool chassis power status
[ipmiutil]
ipmiutil cmd 00 20 00 01
icmd 00 20 00 01
ipmiutil health
ihealth
[FreeIPMI]
ipmi-raw 0x00 0x00 0x01
ipmi-chassis --get-chassis-status
ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} --stat
ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} -s
| MS-DOS |
[ipmitool]
ipmitool 20 00 01
[ipmiutil]
ipmiutil cmd 00 20 00 01
icmd 00 20 00 01
ipmiutil health
ihealth

For example
[IPMItool in Linux] Hint: hover over Place your mouse over the highlighted area in belowfor Response Data description
$ ipmitool raw 0x00 0x01
 41 Byte 2
Current Power State
  [7] - reserved
[6:5] - power restore policy
        00b = chassis stays power off after AC
        01b = after AC returns, power is restored to last state
        10b = chassis always power up after AC
        11b = unknown
  [4] - power control fault
        1b = controller attempted to turn system power on or off, but system did not enter desired state
  [3] - power fault
        1b = fault detected in main power subsystem
  [2] - 1b = interlock (IPMI 1.5)
  [1] - power overload
        1b = system shutdown because of power overload condition
  [0] - power is on
        1b = system power is on
        0b = system power is off
01 Byte 3
Last Power Event
[7:5] - reserved
  [4] - 1b = last 'Power is on' state was entered via IPMI command
  [3] - 1b = last power down caused by power fault
  [2] - 1b = last power down caused by a power interlock being activated
  [1] - 1b = last power down caused by a power overload
  [0] - 1b = AC failed
40 Byte 4
Misc. Chassis State
  [7] - reserved
  [6] - 1b = last Chassis Identify command and state info supported
        0b = chassis identify command support unspecified via this command
[5:4] - Chassis Identify State
  [3] - 1b = cooling/fan fault detected
  [2] - 1b = drive Fault
  [1] - 1b = front Panel Lockout active
  [0] - 1b = chassis intrusion active
00 Byte 5
Front Panel Button Capabilities and disable/enable status
  [7] - 1b = standby (sleep) button disable allowed
  [6] - 1b = diagnostic Interrupt button disable allowed
  [5] - 1b = reset button disable allowed
  [4] - 1b = power off button disable allowed
  [3] - 1b = standby (sleep) button disabled
  [2] - 1b = diagnostic interrupt button disabled
  [1] - 1b = reset button disabled
  [0] - 1b = power off button disabled

$ ipmitool chassis status
System Power         : on
Power Overload       : false
Power Interlock      : inactive
Main Power Fault     : false
Power Control Fault  : false
Power Restore Policy : always-on
Last Power Event     : ac-failed
Chassis Intrusion    : inactive
Front-Panel Lockout  : inactive
Drive Fault          : false
Cooling/Fan Fault    : false
Front Panel Control  : none
$ ipmitool power status
$ ipmitool chassis power status
Chassis Power is on
[IPMIutil in Linux]
$ ipmiutil cmd 00 20 00 01
$ icmd 00 20 00 01
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=4]: 41 Byte 2
Current Power State
  [7] - reserved
[6:5] - power restore policy
        00b = chassis stays power off after AC
        01b = after AC returns, power is restored to last state
        10b = chassis always power up after AC
        11b = unknown
  [4] - power control fault
        1b = controller attempted to turn system power on or off, but system did not enter desired state
  [3] - power fault
        1b = fault detected in main power subsystem
  [2] - 1b = interlock (IPMI 1.5)
  [1] - power overload
        1b = system shutdown because of power overload condition
  [0] - power is on
        1b = system power is on
        0b = system power is off
01 Byte 3
Last Power Event
[7:5] - reserved
  [4] - 1b = last 'Power is on' state was entered via IPMI command
  [3] - 1b = last power down caused by power fault
  [2] - 1b = last power down caused by a power interlock being activated
  [1] - 1b = last power down caused by a power overload
  [0] - 1b = AC failed
40 Byte 4
Misc. Chassis State
  [7] - reserved
  [6] - 1b = last Chassis Identify command and state info supported
        0b = chassis identify command support unspecified via this command
[5:4] - Chassis Identify State
  [3] - 1b = cooling/fan fault detected
  [2] - 1b = drive Fault
  [1] - 1b = front Panel Lockout active
  [0] - 1b = chassis intrusion active
00 Byte 5
Front Panel Button Capabilities and disable/enable status
  [7] - 1b = standby (sleep) button disable allowed
  [6] - 1b = diagnostic Interrupt button disable allowed
  [5] - 1b = reset button disable allowed
  [4] - 1b = power off button disable allowed
  [3] - 1b = standby (sleep) button disabled
  [2] - 1b = diagnostic interrupt button disabled
  [1] - 1b = reset button disabled
  [0] - 1b = power off button disabled

send_icmd ret = 0
ipmiutil cmd, completed successfully
$ ipmiutil health
$ ihealth
ipmiutil ver 3.08
ihealth ver 3.08
BMC manufacturer  = 002338 ( ), product = 0617
BMC version       = 1.07, IPMI v2.0
BIOS Version      = 0617.106
IPMI driver type  = 3        (open)
Power State       = 00       (S0: working)
Selftest status   = 0055     (OK)
Chassis Status    = 41 Byte 2
Current Power State
  [7] - reserved
[6:5] - power restore policy
        00b = chassis stays power off after AC
        01b = after AC returns, power is restored to last state
        10b = chassis always power up after AC
        11b = unknown
  [4] - power control fault
        1b = controller attempted to turn system power on or off, but system did not enter desired state
  [3] - power fault
        1b = fault detected in main power subsystem
  [2] - 1b = interlock (IPMI 1.5)
  [1] - power overload
        1b = system shutdown because of power overload condition
  [0] - power is on
        1b = system power is on
        0b = system power is off
01 Byte 3
Last Power Event
[7:5] - reserved
  [4] - 1b = last 'Power is on' state was entered via IPMI command
  [3] - 1b = last power down caused by power fault
  [2] - 1b = last power down caused by a power interlock being activated
  [1] - 1b = last power down caused by a power overload
  [0] - 1b = AC failed
40 Byte 4
Misc. Chassis State
  [7] - reserved
  [6] - 1b = last Chassis Identify command and state info supported
        0b = chassis identify command support unspecified via this command
[5:4] - Chassis Identify State
  [3] - 1b = cooling/fan fault detected
  [2] - 1b = drive Fault
  [1] - 1b = front Panel Lockout active
  [0] - 1b = chassis intrusion active
00 Byte 5
Front Panel Button Capabilities and disable/enable status
  [7] - 1b = standby (sleep) button disable allowed
  [6] - 1b = diagnostic Interrupt button disable allowed
  [5] - 1b = reset button disable allowed
  [4] - 1b = power off button disable allowed
  [3] - 1b = standby (sleep) button disabled
  [2] - 1b = diagnostic interrupt button disabled
  [1] - 1b = reset button disabled
  [0] - 1b = power off button disabled
(on, see below)
        chassis_power       = on
        pwr_restore_policy  = turn_on
        last_power_event    = ACfailed
        chassis_intrusion   = inactive
        front_panel_lockout = inactive
        drive_fault         = false
        cooling_fan_fault   = false
Power On Hours    = 2924 hours (121 days)
BMC LAN Channels  = 1 8
Chan 1 AuthTypes  = None MD2 MD5 Straight_Passwd OEM
ipmiutil health, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x00 0x01
rcvd: 01 00 Byte 1
Completion Code
00h = Command Completed Normally
41 Byte 2
Current Power State
  [7] - reserved
[6:5] - power restore policy
        00b = chassis stays power off after AC
        01b = after AC returns, power is restored to last state
        10b = chassis always power up after AC
        11b = unknown
  [4] - power control fault
        1b = controller attempted to turn system power on or off, but system did not enter desired state
  [3] - power fault
        1b = fault detected in main power subsystem
  [2] - 1b = interlock (IPMI 1.5)
  [1] - power overload
        1b = system shutdown because of power overload condition
  [0] - power is on
        1b = system power is on
        0b = system power is off
01 Byte 3
Last Power Event
[7:5] - reserved
  [4] - 1b = last 'Power is on' state was entered via IPMI command
  [3] - 1b = last power down caused by power fault
  [2] - 1b = last power down caused by a power interlock being activated
  [1] - 1b = last power down caused by a power overload
  [0] - 1b = AC failed
40 Byte 4
Misc. Chassis State
  [7] - reserved
  [6] - 1b = last Chassis Identify command and state info supported
        0b = chassis identify command support unspecified via this command
[5:4] - Chassis Identify State
  [3] - 1b = cooling/fan fault detected
  [2] - 1b = drive Fault
  [1] - 1b = front Panel Lockout active
  [0] - 1b = chassis intrusion active
00 Byte 5
Front Panel Button Capabilities and disable/enable status
  [7] - 1b = standby (sleep) button disable allowed
  [6] - 1b = diagnostic Interrupt button disable allowed
  [5] - 1b = reset button disable allowed
  [4] - 1b = power off button disable allowed
  [3] - 1b = standby (sleep) button disabled
  [2] - 1b = diagnostic interrupt button disabled
  [1] - 1b = reset button disabled
  [0] - 1b = power off button disabled

$ ipmi-chassis --get-chassis-status
System Power                        : on
Power overload                      : false
Interlock                           : inactive
Power fault                         : false
Power control fault                 : false
Power restore policy                : Always on
Last Power Event                    : ac failed
Chassis intrusion                   : inactive
Front panel lockout                 : inactive
Drive Fault                         : false
Cooling/fan fault                   : false
Chassis Identify state              : off
Power off button                    : enabled
Reset button                        : enabled
Diagnostic Interrupt button         : enabled
Standby button                      : enabled
Power off button disable            : unallowed
Reset button disable                : unallowed
Diagnostic interrupt button disable : unallowed
Standby button disable              : unallowed
$ ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} --stat
172.16.97.38: on
$ ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} -s
172.16.97.38: on
$ ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password}
ipmipower> stat
172.16.97.38: on
ipmipower> quit


Chassis Control - NetFn = Chassis (0x00h), CMD = 0x02h, Privilege Level = Operator, M/O = M
ipmitool raw 0x00 0x02 D[1] Byte 1
Request Data 1
[7:4] - reserved
[3:0] - chassis control
        0h = power down
        1h = power up
        2h = power cycle (optional)
        3h = hard reset
        4h = pulse diagnostic interrupt
        5h = initiate a soft-shutdown of OS via ACPI by emulating a fatal overtemperature. (optional)
        all other = reserved


0h = power down
| Linux |
[IPMItool]
ipmitool raw 0x00 0x02 0x00
ipmitool chassis power off
ipmitool power off
[ipmiutil]
ipmiutil cmd 00 20 00 02 00 -V 3
icmd 00 20 00 02 00 -V 3
ipmiutil reset -d
ireset -d
[FreeIPMI]
ipmi-raw 0x00 0x00 0x02 0x00
ipmi-chassis --chassis-control power-down
ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} --off
ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} -f
| MS-DOS |
[ipmitool]
ipmitool 20 00 02 00
[ipmiutil]
ipmiutil cmd 00 20 00 02 00 -V 3
icmd 00 20 00 02 00 -V 3
ipmiutil reset -d
ireset -d

1h = power up
| Linux |
[IPMItool]
ipmitool raw 0x00 0x02 0x01
ipmitool chassis power on
ipmitool power on
[ipmiutil]
ipmiutil cmd 00 20 00 02 01 -V 3
icmd 00 20 00 02 01 -V 3
ipmiutil reset -u
ireset -u
[FreeIPMI]
ipmi-raw 0x00 0x00 0x02 0x01
ipmi-chassis --chassis-control power-up
ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} --on
ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} -n
| MS-DOS |
[ipmitool]
ipmitool 20 00 02 01
[ipmiutil]
ipmiutil cmd 00 20 00 02 01 -V 3
icmd 00 20 00 02 01 -V 3
ipmiutil reset -u
ireset -u

2h = power cycle (optional)
| Linux |
[IPMItool]
ipmitool raw 0x00 0x02 0x02
ipmitool chassis power cycle
ipmitool power cycle
[ipmiutil]
ipmiutil cmd 00 20 00 02 02 -V 3
icmd 00 20 00 02 02 -V 3
ipmiutil reset -c
ireset -c
[FreeIPMI]
ipmi-raw 0x00 0x00 0x02 0x02
ipmi-chassis --chassis-control power-cycle
ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} --cycle
ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} -c
| MS-DOS |
[ipmitool]
ipmitool 20 00 02 02
[ipmiutil]
ipmiutil cmd 00 20 00 02 02 -V 3
icmd 00 20 00 02 02 -V 3
ipmiutil reset -c
ireset -c

3h = hard reset
| Linux |
[IPMItool]
ipmitool raw 0x00 0x02 0x03
ipmitool chassis power reset
ipmitool power reset
[ipmiutil]
ipmiutil cmd 00 20 00 02 03 -V 3
icmd 00 20 00 02 03 -V 3
ipmiutil reset -r
ireset -r
[FreeIPMI]
ipmi-raw 0x00 0x00 0x02 0x03
ipmi-chassis --chassis-control hard-reset
ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} --reset
ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} -r
| MS-DOS |
[ipmitool]
ipmitool 20 00 02 03
[ipmiutil]
ipmiutil cmd 00 20 00 02 03 -V 3
icmd 00 20 00 02 03 -V 3
ipmiutil reset -r
ireset -r

4h = pulse diagnostic interrupt (Optional)
| Linux |
[IPMItool]
ipmitool raw 0x00 0x02 0x04
ipmitool chassis power diag
ipmitool power diag
[ipmiutil]
ipmiutil cmd 00 20 00 02 04 -V 3
icmd 00 20 00 02 04 -V 3
[FreeIPMI]
ipmi-raw 0x00 0x00 0x02 0x04
ipmi-chassis --chassis-control diagnostic-interrupt
ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} --pulse
| MS-DOS |
[ipmitool]
ipmitool 20 00 02 04
[ipmiutil]
ipmiutil cmd 00 20 00 02 04 -V 3
icmd 00 20 00 02 04 -V 3

5h = initiate a soft-shutdown via ACPI (Optional)
| Linux |
[IPMItool]
ipmitool raw 0x00 0x02 0x05
ipmitool chassis power soft
ipmitool power soft
[ipmiutil]
ipmiutil cmd 00 20 00 02 05 -V 3
icmd 00 20 00 02 05 -V 3
ipmiutil reset -D
ireset -D
[FreeIPMI]
ipmi-raw 0x00 0x00 0x02 0x05
ipmi-chassis --chassis-control soft-shutdown
ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} --soft
| MS-DOS |
[ipmitool]
ipmitool 20 00 02 05
[ipmiutil]
ipmiutil cmd 00 20 00 02 05 -V 3
icmd 00 20 00 02 05 -V 3
ipmiutil reset -D
ireset -D


Chassis Reset - NetFn = Chassis (0x00h), CMD = 0x03h, Privilege Level = Operator, M/O = O


Chassis Identify - NetFn = Chassis (0x00h), CMD = 0x04h, Privilege Level = Operator, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x00 0x04 (D[1]) Byte 1
Request Data 1 (optional)
[7:0] - Identify Interval in seconds
        00h = turn off identify
(D[2]) Byte 2
Request Data 2 (optional)
[7:1] - reserved
  [0] - 1b = turn on identify indefinitely
        0b = identify state driven according to byte 1

ipmitool chassis identify
ipmitool chassis identify 0
ipmitool chassis identify SECS
[ipmiutil]
ipmiutil cmd 00 20 04 (D[1]) Byte 1
Request Data 1 (optional)
[7:0] - Identify Interval in seconds
        00h = turn off identify
(D[2]) Byte 2
Request Data 2 (optional)
[7:1] - reserved
  [0] - 1b = turn on identify indefinitely
        0b = identify state driven according to byte 1

icmd 00 20 04 (D[1]) Byte 1
Request Data 1 (optional)
[7:0] - Identify Interval in seconds
        00h = turn off identify
(D[2]) Byte 2
Request Data 2 (optional)
[7:1] - reserved
  [0] - 1b = turn on identify indefinitely
        0b = identify state driven according to byte 1

ipmiutil alarms -i 0
ialarms -i 0
ipmiutil alarms -i N
ialarms -i N
[FreeIPMI]
ipmi-raw 0x00 0x00 0x04 (D[1]) Byte 1
Request Data 1 (optional)
[7:0] - Identify Interval in seconds
        00h = turn off identify
(D[2]) Byte 2
Request Data 2 (optional)
[7:1] - reserved
  [0] - 1b = turn on identify indefinitely
        0b = identify state driven according to byte 1

ipmi-chassis --chassis-identify turn-off
ipmi-chassis --chassis-identify secs
ipmi-chassis --chassis-identify force
ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password} [IPMIHOST(s)]

For example
[IPMItool in Linux] Hint: hover over Place your mouse over the highlighted area in belowfor Response Data description
$ ipmitool raw 0x00 0x04

$ ipmitool raw 0x00 0x04 0x00 Byte 1
Request Data 1 (optional)
[7:0] - Identify Interval in seconds
        00h = turn off identify


$ ipmitool chassis identify
Chassis identify interval: default (15 seconds)
$ ipmitool chassis identify 30
Chassis identify interval: 30 seconds
$ ipmitool chassis identify 0
Chassis identify interval: off
[IPMIutil in Linux]
$ ipmiutil cmd 00 20 00 04 0a Byte 1
Request Data 1 (optional)
[7:0] - Identify Interval in seconds
        00h = turn off identify

ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
send_icmd ret = 0
ipmiutil cmd, completed successfully
$ ipmiutil alarms -i 10
ipmiutil ver 3.08
ialarms ver 3.08
-- BMC version 1.7, IPMI version 2.0
Setting ID LED to 10 ...

ipmiutil alarms, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x00 0x04
rcvd: 04 00 Byte 1
Completion Code
00h = Command Completed Normally

$ ipmi-raw 0x00 0x00 0x04 0x00 Byte 1
Request Data 1 (optional)
[7:0] - Identify Interval in seconds
        00h = turn off identify

rcvd: 04 00 Byte 1
Completion Code
00h = Command Completed Normally

$ ipmi-chassis --chassis-identify 20
$ ipmi-chassis --chassis-identify force
$ ipmi-chassis --chassis-identify turn-off
$ ipmipower -h ${bmc_ip} -u ${bmc_user} -p ${bmc_password}
ipmipower> identify-on
172.16.97.38: ok
ipmipower> identify-status
172.16.97.38: on
ipmipower> identify-off
172.16.97.38: ok
ipmipower> identify-status
172.16.97.38: off
ipmipower> quit


Set Front Panel Enables - NetFn = Chassis (0x00h), CMD = 0x0Ah, Privilege Level = Admin, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x00 0x0a D[1] Byte 1
Front Panel Button Enables
[7:4] - reserved
  [3] - 1b = disable standby button fore entering standby
  [2] - 1b = disable diagnostic interrupt button
  [1] - 1b = disable reset button
  [0] - 1b = disable power off button for power off only

[ipmiutil]
ipmiutil cmd 00 20 00 0a D[1] Byte 1
Front Panel Button Enables
[7:4] - reserved
  [3] - 1b = disable standby button fore entering standby
  [2] - 1b = disable diagnostic interrupt button
  [1] - 1b = disable reset button
  [0] - 1b = disable power off button for power off only

icmd 00 20 00 0a D[1] Byte 1
Front Panel Button Enables
[7:4] - reserved
  [3] - 1b = disable standby button fore entering standby
  [2] - 1b = disable diagnostic interrupt button
  [1] - 1b = disable reset button
  [0] - 1b = disable power off button for power off only

[FreeIPMI]
ipmi-raw 0x00 0x00 0x0a D[1] Byte 1
Front Panel Button Enables
[7:4] - reserved
  [3] - 1b = disable standby button fore entering standby
  [2] - 1b = disable diagnostic interrupt button
  [1] - 1b = disable reset button
  [0] - 1b = disable power off button for power off only


For example
[IPMItool in Linux] Hint: hover over Place your mouse over the highlighted area in belowfor Response Data description
$ ipmitool raw 0x00 0x0a 0x00 Byte 1
Front Panel Button Enables
[7:4] - reserved
  [3] - 1b = disable standby button fore entering standby
  [2] - 1b = disable diagnostic interrupt button
  [1] - 1b = disable reset button
  [0] - 1b = disable power off button for power off only


[IPMIutil in Linux]
$ ipmiutil cmd 00 20 00 0a 00 Byte 1
Front Panel Button Enables
[7:4] - reserved
  [3] - 1b = disable standby button fore entering standby
  [2] - 1b = disable diagnostic interrupt button
  [1] - 1b = disable reset button
  [0] - 1b = disable power off button for power off only

ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x00 0x0a 0x00 Byte 1
Front Panel Button Enables
[7:4] - reserved
  [3] - 1b = disable standby button fore entering standby
  [2] - 1b = disable diagnostic interrupt button
  [1] - 1b = disable reset button
  [0] - 1b = disable power off button for power off only

rcvd: 0A 00 Byte 1
Completion Code
00h = Command Completed Normally



Set Chassis Capabilities - NetFn = Chassis (0x00h), CMD = 0x05h, Privilege Level = Admin, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x00 0x05 D[1] Byte 1
Capabilities Flags
[7:2] - reserved
  [1] - 1b = provides front panel lockout
  [0] - 1b = provides intrusion
D[2] Byte 2
Chassis FRU Info Device Address
D[3] Byte 3
Chassis SDR Device Address
D[4] Byte 4
Chassis SEL Device Address
D[5] Byte 5
Chassis SM Device Address
(D[6]) Byte 6
Chassis Bridge Device Address

[ipmiutil]
ipmiutil cmd 00 20 00 05 D[1] Byte 1
Capabilities Flags
[7:2] - reserved
  [1] - 1b = provides front panel lockout
  [0] - 1b = provides intrusion
D[2] Byte 2
Chassis FRU Info Device Address
D[3] Byte 3
Chassis SDR Device Address
D[4] Byte 4
Chassis SEL Device Address
D[5] Byte 5
Chassis SM Device Address
(D[6]) Byte 6
Chassis Bridge Device Address

icmd 00 20 00 05 D[1] Byte 1
Capabilities Flags
[7:2] - reserved
  [1] - 1b = provides front panel lockout
  [0] - 1b = provides intrusion
D[2] Byte 2
Chassis FRU Info Device Address
D[3] Byte 3
Chassis SDR Device Address
D[4] Byte 4
Chassis SEL Device Address
D[5] Byte 5
Chassis SM Device Address
(D[6]) Byte 6
Chassis Bridge Device Address

[FreeIPMI]
ipmi-raw 0x00 0x00 0x05 D[1] Byte 1
Capabilities Flags
[7:2] - reserved
  [1] - 1b = provides front panel lockout
  [0] - 1b = provides intrusion
D[2] Byte 2
Chassis FRU Info Device Address
D[3] Byte 3
Chassis SDR Device Address
D[4] Byte 4
Chassis SEL Device Address
D[5] Byte 5
Chassis SM Device Address
(D[6]) Byte 6
Chassis Bridge Device Address


For example
[IPMItool in Linux] Hint: hover over Place your mouse over the highlighted area in belowfor Response Data description
$ ipmitool raw 0x00 0x05 0x00 Byte 1
Capabilities Flags
[7:2] - reserved
  [1] - 1b = provides front panel lockout
  [0] - 1b = provides intrusion
0x20 Byte 2
Chassis FRU Info Device Address
0x20 Byte 3
Chassis SDR Device Address
0x20 Byte 4
Chassis SEL Device Address
0x20 Byte 5
Chassis SM Device Address
0x20 Byte 6
Chassis Bridge Device Address

[IPMIutil in Linux]
$ ipmiutil cmd 00 20 00 05 00 Byte 1
Capabilities Flags
[7:2] - reserved
  [1] - 1b = provides front panel lockout
  [0] - 1b = provides intrusion
20 Byte 2
Chassis FRU Info Device Address
20 Byte 3
Chassis SDR Device Address
20 Byte 4
Chassis SEL Device Address
20 Byte 5
Chassis SM Device Address
20 Byte 6
Chassis Bridge Device Address

ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x00 0x05 0x00 Byte 1
Capabilities Flags
[7:2] - reserved
  [1] - 1b = provides front panel lockout
  [0] - 1b = provides intrusion
0x20 Byte 2
Chassis FRU Info Device Address
0x20 Byte 3
Chassis SDR Device Address
0x20 Byte 4
Chassis SEL Device Address
0x20 Byte 5
Chassis SM Device Address
0x20 Byte 6
Chassis Bridge Device Address

rcvd: 0A 00 Byte 1
Completion Code
00h = Command Completed Normally



Set Power Restore Policy - NetFn = Chassis (0x00h), CMD = 0x06h, Privilege Level = Operator, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x00 0x06 D[1] Byte 1
power restore policy
[7:3] - reserved
[2:0] - power restore policy
        011b = no change
        010b = chassis always powers up after AC/mains
        001b = power is restored to last state after AC/mains
        000b = chassis always stays powered off after AC/mains
        all other = reserved

ipmitool chassis policy <state> <state>
chassis policy <state>
list        : return supported policies
always-on   : turn on when power is restored
previous    : return to previous state when power is restored
always-off  : stay off after power is restored

[ipmiutil]
ipmiutil cmd 00 20 00 06 D[1] Byte 1
power restore policy
[7:3] - reserved
[2:0] - power restore policy
        011b = no change
        010b = chassis always powers up after AC/mains
        001b = power is restored to last state after AC/mains
        000b = chassis always stays powered off after AC/mains
        all other = reserved

icmd 00 20 00 06 D[1] Byte 1
power restore policy
[7:3] - reserved
[2:0] - power restore policy
        011b = no change
        010b = chassis always powers up after AC/mains
        001b = power is restored to last state after AC/mains
        000b = chassis always stays powered off after AC/mains
        all other = reserved

ipmiutil health -p N N
Set restore policy
  0 = off
  1 = last
  2 = on

ihealth -p N N
Set restore policy
  0 = off
  1 = last
  2 = on

[FreeIPMI]
ipmi-raw 0x00 0x00 0x06 D[1] Byte 1
power restore policy
[7:3] - reserved
[2:0] - power restore policy
        011b = no change
        010b = chassis always powers up after AC/mains
        001b = power is restored to last state after AC/mains
        000b = chassis always stays powered off after AC/mains
        all other = reserved


For example
[IPMItool in Linux] Hint: hover over Place your mouse over the highlighted area in belowfor Response Data description
$ ipmitool raw 0x00 0x06 0x03 Byte 1
power restore policy
[7:3] - reserved
[2:0] - power restore policy
        011b = no change
        010b = chassis always powers up after AC/mains
        001b = power is restored to last state after AC/mains
        000b = chassis always stays powered off after AC/mains
        all other = reserved

 07 Byte 2
power restore policy support
[7:3] - reserved
  [2] - 1b = chassis supports always powering up after AC/main returns
  [1] - 1b = chassis supports restoring power to last state after AC/main returns
  [0] - 1b = chassis supports staying powering off after AC/main returns

$ ipmitool raw 0x00 0x06 0x02 Byte 1
power restore policy
[7:3] - reserved
[2:0] - power restore policy
        011b = no change
        010b = chassis always powers up after AC/mains
        001b = power is restored to last state after AC/mains
        000b = chassis always stays powered off after AC/mains
        all other = reserved

 07 Byte 2
power restore policy support
[7:3] - reserved
  [2] - 1b = chassis supports always powering up after AC/main returns
  [1] - 1b = chassis supports restoring power to last state after AC/main returns
  [0] - 1b = chassis supports staying powering off after AC/main returns

$ ipmitool chassis policy always-on
Set chassis power restore policy to always-on
$ ipmitool raw 0x00 0x06 0x01 Byte 1
power restore policy
[7:3] - reserved
[2:0] - power restore policy
        011b = no change
        010b = chassis always powers up after AC/mains
        001b = power is restored to last state after AC/mains
        000b = chassis always stays powered off after AC/mains
        all other = reserved

 07 Byte 2
power restore policy support
[7:3] - reserved
  [2] - 1b = chassis supports always powering up after AC/main returns
  [1] - 1b = chassis supports restoring power to last state after AC/main returns
  [0] - 1b = chassis supports staying powering off after AC/main returns

$ ipmitool chassis policy previous
Set chassis power restore policy to previous
$ ipmitool raw 0x00 0x06 0x00 Byte 1
power restore policy
[7:3] - reserved
[2:0] - power restore policy
        011b = no change
        010b = chassis always powers up after AC/mains
        001b = power is restored to last state after AC/mains
        000b = chassis always stays powered off after AC/mains
        all other = reserved

 07 Byte 2
power restore policy support
[7:3] - reserved
  [2] - 1b = chassis supports always powering up after AC/main returns
  [1] - 1b = chassis supports restoring power to last state after AC/main returns
  [0] - 1b = chassis supports staying powering off after AC/main returns

$ ipmitool chassis policy always-off
Set chassis power restore policy to always-off
[IPMIutil in Linux]
$ icmd 00 20 00 06 0x01 Byte 1
power restore policy
[7:3] - reserved
[2:0] - power restore policy
        011b = no change
        010b = chassis always powers up after AC/mains
        001b = power is restored to last state after AC/mains
        000b = chassis always stays powered off after AC/mains
        all other = reserved

ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=1]: 07 Byte 2
power restore policy support
[7:3] - reserved
  [2] - 1b = chassis supports always powering up after AC/main returns
  [1] - 1b = chassis supports restoring power to last state after AC/main returns
  [0] - 1b = chassis supports staying powering off after AC/main returns

send_icmd ret = 0
ipmiutil cmd, completed successfully
$ ipmiutil health -p 1 N
Set restore policy
  0 = off
  1 = last
  2 = on

ipmiutil ver 3.08
ihealth ver 3.08
BMC manufacturer  = 002338 ( ), product = 0617
BMC version       = 1.07, IPMI v2.0
BIOS Version      = 106
IPMI driver type  = 3        (open)
Power State       = 00       (S0: working)
Selftest status   = 0055     (OK)
Chassis Status    = 21 10 40 00 (on, see below)
        chassis_power       = on
        pwr_restore_policy  = last_state
        last_power_event    = IPMI
        chassis_intrusion   = inactive
        front_panel_lockout = inactive
        drive_fault         = false
        cooling_fan_fault   = false
Power On Hours    = 2973 hours (123 days)
BMC LAN Channels  = 1 8
Chan 1 AuthTypes  = None MD2 MD5 Straight_Passwd OEM
set_restore_policy(1): ret = 0
ipmiutil health, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x00 0x06 0x01 Byte 1
power restore policy
[7:3] - reserved
[2:0] - power restore policy
        011b = no change
        010b = chassis always powers up after AC/mains
        001b = power is restored to last state after AC/mains
        000b = chassis always stays powered off after AC/mains
        all other = reserved

rcvd: 06 00 Byte 1
Completion Code
00h = Command Completed Normally
07 Byte 2
power restore policy support
[7:3] - reserved
  [2] - 1b = chassis supports always powering up after AC/main returns
  [1] - 1b = chassis supports restoring power to last state after AC/main returns
  [0] - 1b = chassis supports staying powering off after AC/main returns



Set Power Cycle Interval - NetFn = Chassis (0x00h), CMD = 0x0Bh, Privilege Level = Admin, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x00 0x0b D[1] Byte 1
Power Cycle Interval in seconds
[7:0] - Power Cycle Interval in seconds, 1-based
        00h = no delay

[ipmiutil]
ipmitutil cmd 00 20 00 0b D[1] Byte 1
Power Cycle Interval in seconds
[7:0] - Power Cycle Interval in seconds, 1-based
        00h = no delay

icmd 00 20 00 0b D[1] Byte 1
Power Cycle Interval in seconds
[7:0] - Power Cycle Interval in seconds, 1-based
        00h = no delay

[FreeIPMI]
ipmi-raw 0x00 0x00 0x0b D[1] Byte 1
Power Cycle Interval in seconds
[7:0] - Power Cycle Interval in seconds, 1-based
        00h = no delay


For example
[IPMItool in Linux] Hint: hover over Place your mouse over the highlighted area in belowfor Response Data description
$ ipmitool raw 0x00 0x0b 0x0a Byte 1
Power Cycle Interval in seconds
[7:0] - Power Cycle Interval in seconds, 1-based
        00h = no delay


[IPMIutil in Linux]
$ icmd 00 20 00 0b 0a Byte 1
Power Cycle Interval in seconds
[7:0] - Power Cycle Interval in seconds, 1-based
        00h = no delay

ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x00 0x0b 0x0a Byte 1
Power Cycle Interval in seconds
[7:0] - Power Cycle Interval in seconds, 1-based
        00h = no delay

rcvd: 0B 00 Byte 1
Completion Code
00h = Command Completed Normally



Get System Restart Cause - NetFn = Chassis (0x00h), CMD = 0x07h, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x00 0x07
ipmitool chassis restart_cause
[ipmiutil]
ipmiutil cmd 00 20 00 07
icmd 00 20 00 07
[FreeIPMI]
ipmi-raw 0x00 0x00 0x07
ipmi-chassis --get-system-restart-cause

For example
[IPMItool in Linux] Hint: hover over Place your mouse over the highlighted area in belowfor Response Data description
$ ipmitool raw 0x00 0x07
 01 Byte 2
Restart Cause
[7:4] - reserved
[3:0] - 0h = unknown
        1h = chassis control command
        2h = reset via pushbutton
        3h = power-up via power pushbutton
        4h = watchdog expiration
        5h = OEM
        6h = automatic power-up on AC (always power-up)
        7h = automatic power-up on AC (restore previous power state)
        8h = reset via PEF
        9h = power-cycle via PEF
        Ah = soft reset
        Bh = power-up via RTC wakeup
        all other = reserved
0f Byte 3
Channel Number

$ ipmitool chassis restart_cause
System restart cause: chassis power control command
[IPMIutil in Linux]
$ ipmiutil cmd 00 20 00 07
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=2]: 01 Byte 2
Restart Cause
[7:4] - reserved
[3:0] - 0h = unknown
        1h = chassis control command
        2h = reset via pushbutton
        3h = power-up via power pushbutton
        4h = watchdog expiration
        5h = OEM
        6h = automatic power-up on AC (always power-up)
        7h = automatic power-up on AC (restore previous power state)
        8h = reset via PEF
        9h = power-cycle via PEF
        Ah = soft reset
        Bh = power-up via RTC wakeup
        all other = reserved
0f Byte 3
Channel Number

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x00 0x07
rcvd: 07 00 Byte 1
Completion Code
00h = Command Completed Normally
01 Byte 2
Restart Cause
[7:4] - reserved
[3:0] - 0h = unknown
        1h = chassis control command
        2h = reset via pushbutton
        3h = power-up via power pushbutton
        4h = watchdog expiration
        5h = OEM
        6h = automatic power-up on AC (always power-up)
        7h = automatic power-up on AC (restore previous power state)
        8h = reset via PEF
        9h = power-cycle via PEF
        Ah = soft reset
        Bh = power-up via RTC wakeup
        all other = reserved
0F Byte 3
Channel Number

$ ipmi-chassis --get-system-restart-cause
Restart cause : Chassis control command


Set System Boot Options - NetFn = Chassis (0x00h), CMD = 0x08h, Privilege Level = Operator, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x00 0x08 D[1] Byte 1
Parameter valid
  [7] - 1b = mark parameter invalid/locked
        0b = mark parameter valid/unlocked
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters
(D[2:N]) Byte 2:N
Boot Option Parameter Data
per Table 28-14, Boot Option Parameters
Passing 0-bytes of parameter data allows the parameter valid bit to be changed without affecting the present parameter setting.

ipmitool raw 0x00 0x08 0x05 Byte 1
Parameter valid
  [7] - 1b = mark parameter invalid/locked
        0b = mark parameter valid/unlocked
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters
D[2] Byte 2
Parameter Data 1
  [7] - 1b = boot flags valid
  [6] - 0b = options apply to next boot only
        1b = options requested to be persistent for all future boots
  [5] - BIOS boot type
        0b = "PC compatible" boot (legacy)
        1b = Extensible Firmware Interface Boot (EFI)
[4:0] - reserved
D[3] Byte 3
Parameter Data 2
  [7] - 1b = CMOS clear
  [6] - 1b = lock keyboard
[5:2] - Boot device selector
        0000b = no override
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0100b = force boot from default diagnostic partition
        0101b = force boot from default CD/DVD
        0110b = force boot into BIOS setup
        0111b = force boot from remotely connected floppy/primary removable media
        1001b = force boot from primary remote media
        1000b = force boot from remotely connected CD/DVD
        1010b = reserved
        1011b = force boot from remotely connected hard drive
        1100-1110b = reserved
        1111b = force boot from floppy/primary removable media
  [1] - 1b = screen blank
  [0] - 1b = lock out reset button
D[4] Byte 4
Parameter Data 3
  [7] - 1b = lock out via power button
[6:5] - firmware (BIOS) verbotisty
        00b = system default
        01b = request quiet display
        10b = request verbose display
        11b = reserved
  [4] - 1b = force progress event traps for [IPMI 2.0]
  [3] - 1b = user password bypass
  [2] - 1b = lock out sleep button
[1:0] - console redirection control
D[5] Byte 5
Parameter Data 4
[7:4] - reserved
  [3] - BIOS shared mode override
        1b = request BIOS to temporarily set the access mode for the channel specified in parameter #6 to 'Shared'
        0b = no request to BIOS to change present access mode setting
[2:0] - BIOS Mux control override
        000b = BIOS uses recommended setting of the mux at the end of POST
        001b = requests BIOS to force mux to BMC at conclusion of POST/start of OS boot
        010b = Requests BIOS to force mux to system at conclusion of POST/start of OS boot
D[6] Byte 6
Parameter Data 5
[7:5] - reserved
[4:0] - device instance selector
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0101b = force boot from default CD/DVD
        0111b = force boot from remotely connected floppy/primary removable media
        1000b = force boot from remotely connected CD/DVD
        1001b = force boot from primary remote media
        1011b = force boot from remotely connected hard drive
        1111b = force boot from floppy/primary removable media
        0000b = no specific device instance requested

ipmitool chassis bootdev <device> device
Boot Device Option
none  : Do not change boot device order
pxe   : Force PXE boot
disk  : Force boot from default Hard-drive
safe  : Force boot from default Hard-drive, request Safe Mode
diag  : Force boot from Diagnostic Partition
cdrom : Force boot from CD/DVD
bios  : Force boot into BIOS Setup
floppy: Force boot from Floppy/primary removable media

ipmitool chassis bootparam set bootflag <device> device
Boot Device Option
Legal devices are:
  none        : No override
  force_pxe   : Force PXE boot
  force_disk  : Force boot from default Hard-drive
  force_safe  : Force boot from default Hard-drive, request Safe Mode
  force_diag  : Force boot from Diagnostic Partition
  force_cdrom : Force boot from CD/DVD
  force_bios  : Force boot into BIOS Setup
Legal options are:
  help    : print this message
  PEF     : Clear valid bit on reset/power cycle cause by PEF
  timeout : Automatically clear boot flag valid bit on timeout
  watchdog: Clear valid bit on reset/power cycle cause by watchdog
  reset   : Clear valid bit on push button reset/soft reset
  power   : Clear valid bit on power up via power push button or wake event
Any Option may be prepended with no- to invert sense of operation

[ipmiutil]
ipmiutil cmd 00 20 08 D[1] Byte 1
Parameter valid
  [7] - 1b = mark parameter invalid/locked
        0b = mark parameter valid/unlocked
[6:0] - boot option parameter selector
(D[2:N]) Byte 2:N
Boot Option Parameter Data
per Table 28-14, Boot Option Parameters
Passing 0-bytes of parameter data allows the parameter valid bit to be changed without affecting the present parameter setting.

icmd 00 20 08 D[1] Byte 1
Parameter valid
  [7] - 1b = mark parameter invalid/locked
        0b = mark parameter valid/unlocked
[6:0] - boot option parameter selector
(D[2:N]) Byte 2:N
Boot Option Parameter Data
per Table 28-14, Boot Option Parameters
Passing 0-bytes of parameter data allows the parameter valid bit to be changed without affecting the present parameter setting.

ipmiutil reset <option> option
Boot Option Parameter Data
-b  reboots to BIOS Setup
-e  reboots to EFI
-f  reboots to Floppy/Removable
-h  reboots to Hard Disk
-p  reboots to PXE via network
-s  reboots to Service Partition
-v  reboots to DVD/CDROM Media
-y  Yes, persist boot options [-befhpms]

ireset <option> option
Boot Option Parameter Data
-b  reboots to BIOS Setup
-e  reboots to EFI
-f  reboots to Floppy/Removable
-h  reboots to Hard Disk
-p  reboots to PXE via network
-s  reboots to Service Partition
-v  reboots to DVD/CDROM Media
-y  Yes, persist boot options [-befhpms]

[FreeIPMI]
ipmi-raw 0x00 0x00 0x08 D[1] Byte 1
Parameter valid
  [7] - 1b = mark parameter invalid/locked
        0b = mark parameter valid/unlocked
[6:0] - boot option parameter selector
(D[2:N]) Byte 2:N
Boot Option Parameter Data
per Table 28-14, Boot Option Parameters
Passing 0-bytes of parameter data allows the parameter valid bit to be changed without affecting the present parameter setting.

| MS-DOS |
[ipmitool]
ipmitool 20 00 08 Data[1:6]
[ipmiutil]
ipmiutil cmd 00 20 08 Data[1:6] -V 3
icmd 00 20 08 Data[1:6] -V 3
ipmiutil reset -b:f:h:p:v
ireset -b:f:h:p:v

--Completion Code--
80h = parameter not supported
81h = attempt to set the 'set in progress' value (in parameter #0) when not in the 'set complete' state
82h = attempt to write read-only parameter

For example
[IPMItool in Linux] Hint: hover over Place your mouse over the highlighted area in belowfor Response Data description
Boot to None to next boot only
$ ipmitool raw 0x00 0x08 0x05 Byte 1
Parameter valid
  [7] - 1b = mark parameter invalid/locked
        0b = mark parameter valid/unlocked
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters
0x80 Byte 2
Parameter Data 1
  [7] - 1b = boot flags valid
  [6] - 0b = options apply to next boot only
        1b = options requested to be persistent for all future boots
  [5] - BIOS boot type
        0b = "PC compatible" boot (legacy)
        1b = Extensible Firmware Interface Boot (EFI)
[4:0] - reserved
0x00 Byte 3
Parameter Data 2
  [7] - 1b = CMOS clear
  [6] - 1b = lock keyboard
[5:2] - Boot device selector
        0000b = no override
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0100b = force boot from default diagnostic partition
        0101b = force boot from default CD/DVD
        0110b = force boot into BIOS setup
        0111b = force boot from remotely connected floppy/primary removable media
        1001b = force boot from primary remote media
        1000b = force boot from remotely connected CD/DVD
        1010b = reserved
        1011b = force boot from remotely connected hard drive
        1100-1110b = reserved
        1111b = force boot from floppy/primary removable media
  [1] - 1b = screen blank
  [0] - 1b = lock out reset button
0x00 Byte 4
Parameter Data 3
  [7] - 1b = lock out via power button
[6:5] - firmware (BIOS) verbotisty
        00b = system default
        01b = request quiet display
        10b = request verbose display
        11b = reserved
  [4] - 1b = force progress event traps for [IPMI 2.0]
  [3] - 1b = user password bypass
  [2] - 1b = lock out sleep button
[1:0] - console redirection control
0x00 Byte 5
Parameter Data 4
[7:4] - reserved
  [3] - BIOS shared mode override
        1b = request BIOS to temporarily set the access mode for the channel specified in parameter #6 to 'Shared'
        0b = no request to BIOS to change present access mode setting
[2:0] - BIOS Mux control override
        000b = BIOS uses recommended setting of the mux at the end of POST
        001b = requests BIOS to force mux to BMC at conclusion of POST/start of OS boot
        010b = Requests BIOS to force mux to system at conclusion of POST/start of OS boot
0x00 Byte 6
Parameter Data 5
[7:5] - reserved
[4:0] - device instance selector
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0101b = force boot from default CD/DVD
        0111b = force boot from remotely connected floppy/primary removable media
        1000b = force boot from remotely connected CD/DVD
        1001b = force boot from primary remote media
        1011b = force boot from remotely connected hard drive
        1111b = force boot from floppy/primary removable media
        0000b = no specific device instance requested


$ ipmitool chassis bootdev none
Set Boot Device to none
$ ipmitool chassis bootparam set bootflag none
Set Boot Device to none
Force PXE boot to next boot only
$ ipmitool raw 0x00 0x08 0x05 0x80 0x04 Byte 3
Parameter Data 2
  [7] - 1b = CMOS clear
  [6] - 1b = lock keyboard
[5:2] - Boot device selector
        0000b = no override
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0100b = force boot from default diagnostic partition
        0101b = force boot from default CD/DVD
        0110b = force boot into BIOS setup
        0111b = force boot from remotely connected floppy/primary removable media
        1001b = force boot from primary remote media
        1000b = force boot from remotely connected CD/DVD
        1010b = reserved
        1011b = force boot from remotely connected hard drive
        1100-1110b = reserved
        1111b = force boot from floppy/primary removable media
  [1] - 1b = screen blank
  [0] - 1b = lock out reset button
 0x00 0x00 0x00

$ ipmitool chassis bootdev pxe
Set Boot Device to pxe
$ ipmitool chassis bootparam set bootflag force_pxe
Set Boot Device to force_pxe
Force boot from default Hard-drive to next boot only
$ ipmitool raw 0x00 0x08 0x05 0x80 0x08 Byte 3
Parameter Data 2
  [7] - 1b = CMOS clear
  [6] - 1b = lock keyboard
[5:2] - Boot device selector
        0000b = no override
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0100b = force boot from default diagnostic partition
        0101b = force boot from default CD/DVD
        0110b = force boot into BIOS setup
        0111b = force boot from remotely connected floppy/primary removable media
        1001b = force boot from primary remote media
        1000b = force boot from remotely connected CD/DVD
        1010b = reserved
        1011b = force boot from remotely connected hard drive
        1100-1110b = reserved
        1111b = force boot from floppy/primary removable media
  [1] - 1b = screen blank
  [0] - 1b = lock out reset button
 0x00 0x00 0x00

$ ipmitool chassis bootdev disk
Set Boot Device to disk
$ ipmitool chassis bootparam set bootflag force_disk
Set Boot Device to force_disk
Force boot from CD/DVD to next boot only
$ ipmitool raw 0x00 0x08 0x05 0x80 0x14 Byte 3
Parameter Data 2
  [7] - 1b = CMOS clear
  [6] - 1b = lock keyboard
[5:2] - Boot device selector
        0000b = no override
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0100b = force boot from default diagnostic partition
        0101b = force boot from default CD/DVD
        0110b = force boot into BIOS setup
        0111b = force boot from remotely connected floppy/primary removable media
        1001b = force boot from primary remote media
        1000b = force boot from remotely connected CD/DVD
        1010b = reserved
        1011b = force boot from remotely connected hard drive
        1100-1110b = reserved
        1111b = force boot from floppy/primary removable media
  [1] - 1b = screen blank
  [0] - 1b = lock out reset button
 0x00 0x00 0x00

$ ipmitool chassis bootdev cdrom
Set Boot Device to cdrom
$ ipmitool chassis bootparam set bootflag force_cdrom
Set Boot Device to force_cdrom
Force boot into BIOS Setup Menu to next boot only
$ ipmitool raw 0x00 0x08 0x05 0x80 0x18 Byte 3
Parameter Data 2
  [7] - 1b = CMOS clear
  [6] - 1b = lock keyboard
[5:2] - Boot device selector
        0000b = no override
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0100b = force boot from default diagnostic partition
        0101b = force boot from default CD/DVD
        0110b = force boot into BIOS setup
        0111b = force boot from remotely connected floppy/primary removable media
        1001b = force boot from primary remote media
        1000b = force boot from remotely connected CD/DVD
        1010b = reserved
        1011b = force boot from remotely connected hard drive
        1100-1110b = reserved
        1111b = force boot from floppy/primary removable media
  [1] - 1b = screen blank
  [0] - 1b = lock out reset button
 0x00 0x00 0x00

$ ipmitool chassis bootdev bios
Set Boot Device to bios
$ ipmitool chassis bootparam set bootflag force_bios
Set Boot Device to force_bios
Force boot from Floppy to next boot only
$ ipmitool raw 0x00 0x08 0x05 0x80 0x3c Byte 3
Parameter Data 2
  [7] - 1b = CMOS clear
  [6] - 1b = lock keyboard
[5:2] - Boot device selector
        0000b = no override
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0100b = force boot from default diagnostic partition
        0101b = force boot from default CD/DVD
        0110b = force boot into BIOS setup
        0111b = force boot from remotely connected floppy/primary removable media
        1001b = force boot from primary remote media
        1000b = force boot from remotely connected CD/DVD
        1010b = reserved
        1011b = force boot from remotely connected hard drive
        1100-1110b = reserved
        1111b = force boot from floppy/primary removable media
  [1] - 1b = screen blank
  [0] - 1b = lock out reset button
 0x00 0x00 0x00

$ ipmitool chassis bootdev floppy
Set Boot Device to floppy
$ ipmitool chassis bootparam set bootflag force_floppy
Set Boot Device to force_floppy
Force boot from CD/DVD to be persistent for all future boots
$ ipmitool raw 0x00 0x08 0x05 0xc0 Byte 2
Parameter Data 1
  [7] - 1b = boot flags valid
  [6] - 0b = options apply to next boot only
        1b = options requested to be persistent for all future boots
  [5] - BIOS boot type
        0b = "PC compatible" boot (legacy)
        1b = Extensible Firmware Interface Boot (EFI)
[4:0] - reserved
 0x14 0x00 0x00 0x00

[IPMIutil in Linux]
Boot to None
$ icmd 00 20 00 08 05 80 00 00 00 00
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
send_icmd ret = 0
ipmiutil cmd, completed successfully
Reboot to the BIOS Setup
$ ireset -b
ipmiutil ver 3.08
ireset ver 3.08
-- BMC version 1.7, IPMI version 2.0
Power State      = 00   (S0: working)
ireset: resetting to BIOS Setup ...
chassis_reset(3) ok
ireset: IPMI_Reset ok
ipmiutil reset, completed successfully
Reboot to EFI
$ ireset -e ipmiutil ver 3.08
ireset ver 3.08
-- BMC version 1.7, IPMI version 2.0
Power State      = 00   (S0: working)
ireset: resetting to EFI ...
chassis_reset(3) ok
ireset: IPMI_Reset ok
ipmiutil reset, completed successfully
Reboot to Floppy/Removable
$ ireset -f
ipmiutil ver 3.08
ireset ver 3.08
-- BMC version 1.7, IPMI version 2.0
Power State      = 00   (S0: working)
ireset: resetting to floppy ...
chassis_reset(3) ok
ireset: IPMI_Reset ok
ipmiutil reset, completed successfully
Reboot to Hard Disk
$ ireset -h
ipmiutil ver 3.08
ireset ver 3.08
-- BMC version 1.7, IPMI version 2.0
Power State      = 00   (S0: working)
ireset: resetting to hard disk ...
chassis_reset(3) ok
ireset: IPMI_Reset ok
ipmiutil reset, completed successfully
Reboot to PXE server
$ ipmiutil reset -p
ipmiutil ver 3.08
ireset ver 3.08
-- BMC version 1.7, IPMI version 2.0
Power State      = 00   (S0: working)
ireset: resetting to PXE ...
chassis_reset(3) ok
ireset: IPMI_Reset ok
ipmiutil reset, completed successfully
Reboot to Service Partition
$ ipmiutil reset -s
ipmiutil ver 3.08
ireset ver 3.08
-- BMC version 1.7, IPMI version 2.0
Power State      = 00   (S0: working)
ireset: resetting to Svc partition ...
chassis_reset(3) ok
ireset: IPMI_Reset ok
ipmiutil reset, completed successfully
Reboot to DVD/CDROM Media
$ ipmiutil reset -v
ipmiutil ver 3.08
ireset ver 3.08
-- BMC version 1.7, IPMI version 2.0
Power State      = 00   (S0: working)
ireset: resetting to CDROM ...
chassis_reset(3) ok
ireset: IPMI_Reset ok
ipmiutil reset, completed successfully
[FreeIPMI in Linux]
No override
$ ipmi-raw 0x00 0x00 0x08 0x05 0x80 0x00 0x00 0x00 0x00
rcvd: 08 00 Byte 1
Completion Code
00h = Command Completed Normally
80h = parameter not supported
81h = attempt to set the 'set in progress' value (in parameter #0) when not in the 'set complete' state
82h = attempt to write read-only parameter

Force boot from default CD/DVD
$ ipmi-raw 0x00 0x00 0x08 0x05 0x80 0x14 0x00 0x00 0x00
rcvd: 08 00 Byte 1
Completion Code
00h = Command Completed Normally
80h = parameter not supported
81h = attempt to set the 'set in progress' value (in parameter #0) when not in the 'set complete' state
82h = attempt to write read-only parameter



Get System Boot Options - NetFn = Chassis (0x00h), CMD = 0x09h, Privilege Level = Operator, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x00 0x09 D[1] Byte 1
Parameter Selector
  [7] - reserved
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters
D[2] Byte 2
Set Selector
[7:0] - Set Selector
        00h = parameter doesn't use
D[3] Byte 3
Block Selector
[7:0] - Block Selector
        00h = parameter doesn't use

ipmitool chassis bootparam get <param #> Byte 1
Parameter Selector
  [7] - reserved
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters

[ipmiutil]
ipmiutil cmd 00 20 00 09 D[1] Byte 1
Parameter Selector
  [7] - reserved
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters
D[2] Byte 2
Set Selector
[7:0] - Set Selector
        00h = parameter doesn't use
D[3] Byte 3
Block Selector
[7:0] - Block Selector
        00h = parameter doesn't use

icmd 00 20 09 D[1] Byte 1
Parameter Selector
  [7] - reserved
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters
D[2] Byte 2
Set Selector
[7:0] - Set Selector
        00h = parameter doesn't use
D[3] Byte 3
Block Selector
[7:0] - Block Selector
        00h = parameter doesn't use

[FreeIPMI]
ipmi-raw 0x00 0x00 0x09 D[1] Byte 1
Parameter Selector
  [7] - reserved
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters
D[2] Byte 2
Set Selector
[7:0] - Set Selector
        00h = parameter doesn't use
D[3] Byte 3
Block Selector
[7:0] - Block Selector
        00h = parameter doesn't use

| MS-DOS |
[ipmitool]
ipmitool 20 00 09 Data[1:3]
[ipmiutil]
ipmiutil cmd 00 20 00 09 Data[1:3] -V 3
icmd 00 20 09 Data[1:3] -V 3

--Completion Code--
80h = parameter not supported

For example
[IPMItool in Linux] Hint: hover over Place your mouse over the highlighted area in belowfor Response Data description
$ ipmitool raw 0x00 0x08 0x05 0x80 0x18 0x00 0x00 0x00

$ ipmitool raw 0x00 0x09 0x05 Byte 1
Parameter Selector
  [7] - reserved
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters
0x00 Byte 2
Set Selector
[7:0] - Set Selector
        00h = parameter doesn't use
0x00 Byte 3
Block Selector
[7:0] - Block Selector
        00h = parameter doesn't use

 01 Byte 2
Parameter Version
[7:4] - reserved
[3:0] - parameter version
        1h = for this specification unless otherwise specified
05 Byte 3
Parameter valid
  [7] - 1b = mark parameter invalid/locked
        0b = mark parameter valid/unlocked
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters
80 Byte 4
Parameter Data 1
  [7] - 1b = boot flags valid
  [6] - 0b = options apply to next boot only
        1b = options requested to be persistent for all future boots
  [5] - BIOS boot type
        0b = "PC compatible" boot (legacy)
        1b = Extensible Firmware Interface Boot (EFI)
[4:0] - reserved
18 Byte 5
Parameter Data 2
  [7] - 1b = CMOS clear
  [6] - 1b = lock keyboard
[5:2] - Boot device selector
        0000b = no override
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0100b = force boot from default diagnostic partition
        0101b = force boot from default CD/DVD
        0110b = force boot into BIOS setup
        0111b = force boot from remotely connected floppy/primary removable media
        1001b = force boot from primary remote media
        1000b = force boot from remotely connected CD/DVD
        1010b = reserved
        1011b = force boot from remotely connected hard drive
        1100-1110b = reserved
        1111b = force boot from floppy/primary removable media
  [1] - 1b = screen blank
  [0] - 1b = lock out reset button
00 Byte 6
Parameter Data 3
  [7] - 1b = lock out via power button
[6:5] - firmware (BIOS) verbotisty
        00b = system default
        01b = request quiet display
        10b = request verbose display
        11b = reserved
  [4] - 1b = force progress event traps for [IPMI 2.0]
  [3] - 1b = user password bypass
  [2] - 1b = lock out sleep button
[1:0] - console redirection control
00 Byte 7
Parameter Data 4
[7:4] - reserved
  [3] - BIOS shared mode override
        1b = request BIOS to temporarily set the access mode for the channel specified in parameter #6 to 'Shared'
        0b = no request to BIOS to change present access mode setting
[2:0] - BIOS Mux control override
        000b = BIOS uses recommended setting of the mux at the end of POST
        001b = requests BIOS to force mux to BMC at conclusion of POST/start of OS boot
        010b = Requests BIOS to force mux to system at conclusion of POST/start of OS boot
00 Byte 8
Parameter Data 5
[7:5] - reserved
[4:0] - device instance selector
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0101b = force boot from default CD/DVD
        0111b = force boot from remotely connected floppy/primary removable media
        1000b = force boot from remotely connected CD/DVD
        1001b = force boot from primary remote media
        1011b = force boot from remotely connected hard drive
        1111b = force boot from floppy/primary removable media
        0000b = no specific device instance requested

$ ipmitool chassis bootparam get 0x05 Byte 1
Parameter Selector
  [7] - reserved
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters

Boot parameter version: 1
Boot parameter 5 is valid/unlocked
Boot parameter data: 8018000000
Boot Flags :
   - Boot Flag Valid
   - Options apply to only next boot
   - BIOS PC Compatible (legacy) boot
   - Boot Device Selector : Force Boot into BIOS Setup
   - Console Redirection control : System Default
   - BIOS verbosity : Console redirection occurs per BIOS configuration setting (default)
   - BIOS Mux Control Override : BIOS uses recommended setting of the mux at the end of POST
[IPMIutil in Linux]
$ icmd 00 20 00 09 05 Byte 1
Parameter Selector
  [7] - reserved
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters
00 Byte 2
Set Selector
[7:0] - Set Selector
        00h = parameter doesn't use
00 Byte 3
Block Selector
[7:0] - Block Selector
        00h = parameter doesn't use

ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=7]: 01 Byte 2
Parameter Version
[7:4] - reserved
[3:0] - parameter version
        1h = for this specification unless otherwise specified
05 Byte 3
Parameter valid
  [7] - 1b = mark parameter invalid/locked
        0b = mark parameter valid/unlocked
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters
80 Byte 4
Parameter Data 1
  [7] - 1b = boot flags valid
  [6] - 0b = options apply to next boot only
        1b = options requested to be persistent for all future boots
  [5] - BIOS boot type
        0b = "PC compatible" boot (legacy)
        1b = Extensible Firmware Interface Boot (EFI)
[4:0] - reserved
18 Byte 5
Parameter Data 2
  [7] - 1b = CMOS clear
  [6] - 1b = lock keyboard
[5:2] - Boot device selector
        0000b = no override
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0100b = force boot from default diagnostic partition
        0101b = force boot from default CD/DVD
        0110b = force boot into BIOS setup
        0111b = force boot from remotely connected floppy/primary removable media
        1001b = force boot from primary remote media
        1000b = force boot from remotely connected CD/DVD
        1010b = reserved
        1011b = force boot from remotely connected hard drive
        1100-1110b = reserved
        1111b = force boot from floppy/primary removable media
  [1] - 1b = screen blank
  [0] - 1b = lock out reset button
00 Byte 6
Parameter Data 3
  [7] - 1b = lock out via power button
[6:5] - firmware (BIOS) verbotisty
        00b = system default
        01b = request quiet display
        10b = request verbose display
        11b = reserved
  [4] - 1b = force progress event traps for [IPMI 2.0]
  [3] - 1b = user password bypass
  [2] - 1b = lock out sleep button
[1:0] - console redirection control
00 Byte 7
Parameter Data 4
[7:4] - reserved
  [3] - BIOS shared mode override
        1b = request BIOS to temporarily set the access mode for the channel specified in parameter #6 to 'Shared'
        0b = no request to BIOS to change present access mode setting
[2:0] - BIOS Mux control override
        000b = BIOS uses recommended setting of the mux at the end of POST
        001b = requests BIOS to force mux to BMC at conclusion of POST/start of OS boot
        010b = Requests BIOS to force mux to system at conclusion of POST/start of OS boot
00 Byte 8
Parameter Data 5
[7:5] - reserved
[4:0] - device instance selector
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0101b = force boot from default CD/DVD
        0111b = force boot from remotely connected floppy/primary removable media
        1000b = force boot from remotely connected CD/DVD
        1001b = force boot from primary remote media
        1011b = force boot from remotely connected hard drive
        1111b = force boot from floppy/primary removable media
        0000b = no specific device instance requested

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x00 0x09 0x05 Byte 1
Parameter Selector
  [7] - reserved
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters
0x00 Byte 2
Set Selector
[7:0] - Set Selector
        00h = parameter doesn't use
0x00 Byte 3
Block Selector
[7:0] - Block Selector
        00h = parameter doesn't use

rcvd: 09 00 Byte 1
Completion Code
00h = Command Completed Normally
01 Byte 2
Parameter Version
[7:4] - reserved
[3:0] - parameter version
        1h = for this specification unless otherwise specified
05 Byte 3
Parameter valid
  [7] - 1b = mark parameter invalid/locked
        0b = mark parameter valid/unlocked
[6:0] - boot option parameter selector
        0h = set in progress
        1h = service partition selector
        2h = service partition scan
        3h = BMC boot flag valid bit clearing
        4h = boot info acknowledge
        5h = boot flags
        6h = boot initiator info
        7h = boot initiator mailbox
        96:127 = OEM parameters
80 Byte 4
Parameter Data 1
  [7] - 1b = boot flags valid
  [6] - 0b = options apply to next boot only
        1b = options requested to be persistent for all future boots
  [5] - BIOS boot type
        0b = "PC compatible" boot (legacy)
        1b = Extensible Firmware Interface Boot (EFI)
[4:0] - reserved
18 Byte 5
Parameter Data 2
  [7] - 1b = CMOS clear
  [6] - 1b = lock keyboard
[5:2] - Boot device selector
        0000b = no override
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0100b = force boot from default diagnostic partition
        0101b = force boot from default CD/DVD
        0110b = force boot into BIOS setup
        0111b = force boot from remotely connected floppy/primary removable media
        1001b = force boot from primary remote media
        1000b = force boot from remotely connected CD/DVD
        1010b = reserved
        1011b = force boot from remotely connected hard drive
        1100-1110b = reserved
        1111b = force boot from floppy/primary removable media
  [1] - 1b = screen blank
  [0] - 1b = lock out reset button
00 Byte 6
Parameter Data 3
  [7] - 1b = lock out via power button
[6:5] - firmware (BIOS) verbotisty
        00b = system default
        01b = request quiet display
        10b = request verbose display
        11b = reserved
  [4] - 1b = force progress event traps for [IPMI 2.0]
  [3] - 1b = user password bypass
  [2] - 1b = lock out sleep button
[1:0] - console redirection control
00 Byte 7
Parameter Data 4
[7:4] - reserved
  [3] - BIOS shared mode override
        1b = request BIOS to temporarily set the access mode for the channel specified in parameter #6 to 'Shared'
        0b = no request to BIOS to change present access mode setting
[2:0] - BIOS Mux control override
        000b = BIOS uses recommended setting of the mux at the end of POST
        001b = requests BIOS to force mux to BMC at conclusion of POST/start of OS boot
        010b = Requests BIOS to force mux to system at conclusion of POST/start of OS boot
00 Byte 8
Parameter Data 5
[7:5] - reserved
[4:0] - device instance selector
        0001b = force PXE
        0010b = force boot from default hard-drive
        0011b = force boot from default hard-drive, request safe mode
        0101b = force boot from default CD/DVD
        0111b = force boot from remotely connected floppy/primary removable media
        1000b = force boot from remotely connected CD/DVD
        1001b = force boot from primary remote media
        1011b = force boot from remotely connected hard drive
        1111b = force boot from floppy/primary removable media
        0000b = no specific device instance requested



Get POH Counter - NetFn = Chassis (0x00h), CMD = 0x0Fh, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x00 0x0f
ipmitool chassis poh
[ipmiutil]
ipmiutil cmd 00 20 00 0f
icmd 00 20 00 0f
ipmiutil health
ihealth
[FreeIPMI]
ipmi-raw 0x00 0x00 0x0f
ipmi-chassis --get-power-on-hours-counter
| MS-DOS |
[ipmitool]
ipmitool 20 00 0f
[ipmiutil]
ipmiutil cmd 00 20 00 0f
icmd 00 20 00 0f
ipmiutil health
ihealth

For example
[IPMItool in Linux] Hint: hover over Place your mouse over the highlighted area in belowfor Response Data description
$ ipmitool raw 0x00 0x0f
 3c Byte 2
Minutes Per Count
ac 0b 00 00 Byte [3:6]
Counter Reading
LS Byte first

$ ipmitool chassis poh
POH Counter  : 124 days, 12 hours
[IPMIutil in Linux]
$ ipmiutil cmd 00 20 00 0f
$ icmd 00 20 00 0f
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=5]: 3c Byte 2
Minutes Per Count
ac 0b 00 00 Byte [3:6]
Counter Reading
LS Byte first

send_icmd ret = 0
ipmiutil cmd, completed successfully
$ ipmiutil health
$ ihealth
ipmiutil ver 3.08
ihealth ver 3.08
BMC manufacturer  = 002338 ( ), product = 0671
BMC version       = 1.07, IPMI v2.0
BIOS Version      = 106
IPMI driver type  = 3        (open)
Power State       = 00       (S0: working)
Selftest status   = 0055     (OK)
Chassis Status    = 21 01 40 00 (on, see below)
        chassis_power       = on
        pwr_restore_policy  = last_state
        last_power_event    = ACfailed
        chassis_intrusion   = inactive
        front_panel_lockout = inactive
        drive_fault         = false
        cooling_fan_fault   = false
Power On Hours  = 2988 hours (124 days)
BMC LAN Channels  = 1 8
Chan 1 AuthTypes  = None MD2 MD5 Straight_Passwd OEM
ipmiutil health, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x00 0x0f
rcvd: 0F 00 Byte 1
Completion Code
00h = Command Completed Normally
3C Byte 2
Minutes Per Count
AC 0B 00 00 Byte [3:6]
Counter Reading
LS Byte first

$ ipmi-chassis --get-power-on-hours-counter
Power on hours : 0 Hours 49 Minutes


Reference
[1] "Intelligent Platform Management Interface Specification Second Generation v2.0 Document Revision 1.1"
https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmi-second-gen-interface-spec-v2-rev1-1.pdf
[2] "IPMItool" http://sourceforge.net/projects/ipmitool/
[3] "IPMI Command Test Tool" http://www.intel.com/design/servers/ipmi/ipmi_tool.htm
[4] "IPMIUTIL USER GUIDE" http://ipmiutil.sourceforge.net/
[5] "FreeIPMI Documentation" http://www.gnu.org/software/freeipmi/index.html

Last Updated: September 24, 2019

3 comments:

  1. I cant figure out what the options in the boot selector section mean.

    how does 0110b, which is hex 6, equate to 0x14? why not just put the correct number in the hover list instead of something different that doesn't even seem to match with no explanation

    ReplyDelete
    Replies
    1. Hi Artless_knave,
      HEX(14)=BIN(00010100)
      Bit[5:2]=BIN(0101)="force boot from default CD/DVD"

      if you want to "force boot into BIOS setup", you must set data Byte3 Bit[5:2]=BIN(0110), therefore data Byte3 is 0x18.

      Delete
  2. How would you go about in grabbing the other ones, like

    1000b = force boot from remotely connected CD/DVD

    ReplyDelete