Pages

Monday, May 13, 2013

[IPMI] PEF & Alerting Commands

[IPMI] PEF and Alerting Commands Get PEF Capabilities - NetFn = Sensor/Event (0x04h), CMD = 0x10h, Privilege Level = User, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x04 0x10
ipmitool pef
ipmitool pef info
[ipmiutil]
ipmiutil cmd 00 20 10 10
icmd 00 20 10 10
[FreeIPMI]
ipmi-raw 0x00 0x04 0x10
| MS-DOS |
[ipmitool]
ipmitool 20 10 10

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x04 0x10
 51 Byte 2
PEF Version
PEF Version
(BCD encoded, LSN first, 51h for this specification. 51h version 1.5)
3f Byte 3
Response Data Byte 3
[7] - 1b = OEM Event Record Filtering supported
[6] - reserved
Action Support
[5] - 1b = diagnostic interrupt
[4] - 1b = OEM action
[3] - 1b = power cycle
[2] - 1b = reset
[1] - 1b = power down
[0] - 1b = Alert
28 Byte 4
Response Data Byte 4
Number of event filter table entries (1 based)

$ ipmitool pef
$ ipmitool pef info
0x51 | 40 | 60 | d8cb8af7-c6b6-9f03-0010-debf54873a6c | Alert,Power-off,Reset,Power-cycle,OEM-defined,Diagnostic-interrupt
[ipmiutil in Linux]
$ icmd 00 20 10 10
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=3]: 51 Byte 2
PEF Version
PEF Version
(BCD encoded, LSN first, 51h for this specification. 51h version 1.5)
3f Byte 3
Response Data Byte 3
[7] - 1b = OEM Event Record Filtering supported
[6] - reserved
Action Support
[5] - 1b = diagnostic interrupt
[4] - 1b = OEM action
[3] - 1b = power cycle
[2] - 1b = reset
[1] - 1b = power down
[0] - 1b = Alert
28 Byte 4
Response Data Byte 4
Number of event filter table entries (1 based)

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x04 0x10
rcvd: 10 00 Byte 1
Completion Code
00h = Command Completed Normally
51 Byte 2
PEF Version
PEF Version
(BCD encoded, LSN first, 51h for this specification. 51h version 1.5)
3F Byte 3
Response Data Byte 3
[7] - 1b = OEM Event Record Filtering supported
[6] - reserved
Action Support
[5] - 1b = diagnostic interrupt
[4] - 1b = OEM action
[3] - 1b = power cycle
[2] - 1b = reset
[1] - 1b = power down
[0] - 1b = Alert
28 Byte 4
Response Data Byte 4
Number of event filter table entries (1 based)



Arm PEF Postpone Timer - NetFn = Sensor/Event (0x04h), CMD = 0x11h, Privilege Level = Admin, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x04 0x11 D[1] Byte 1
Request Data Byte 1
[7:0] - PEF Postpone Timeout, in seconds
        00h = disable Postpone Timer
              (PEF will immediately handle events, if enabled)
              The BMC automatically disables the timer whenever the system enters a sleep state, is powered down, or reset
        01h - FDh = arm timer
              Timer will automatically start counting down from given value when the last-processed event Record ID is not equal to the last received event's Record ID
        FEh = Temporary PEF disable
              The PEF Postpone timer does not countdown from the value
              The BMC automatically re-enables PEF (if enabled in the PEF configuration parameters) and sets the PEF Postpone timeout to 00h whenever the system enters a sleep state, is powered down, or reset
              Software can cancel this disable by setting this parameter to 00h or 01h-FDh
        FFh = get present countdown value

[ipmiutil]
ipmiutil cmd 00 20 10 11 D[1] Byte 1
Request Data Byte 1
[7:0] - PEF Postpone Timeout, in seconds
        00h = disable Postpone Timer
              (PEF will immediately handle events, if enabled)
              The BMC automatically disables the timer whenever the system enters a sleep state, is powered down, or reset
        01h - FDh = arm timer
              Timer will automatically start counting down from given value when the last-processed event Record ID is not equal to the last received event's Record ID
        FEh = Temporary PEF disable
              The PEF Postpone timer does not countdown from the value
              The BMC automatically re-enables PEF (if enabled in the PEF configuration parameters) and sets the PEF Postpone timeout to 00h whenever the system enters a sleep state, is powered down, or reset
              Software can cancel this disable by setting this parameter to 00h or 01h-FDh
        FFh = get present countdown value

icmd 00 20 10 11 D[1] Byte 1
Request Data Byte 1
[7:0] - PEF Postpone Timeout, in seconds
        00h = disable Postpone Timer
              (PEF will immediately handle events, if enabled)
              The BMC automatically disables the timer whenever the system enters a sleep state, is powered down, or reset
        01h - FDh = arm timer
              Timer will automatically start counting down from given value when the last-processed event Record ID is not equal to the last received event's Record ID
        FEh = Temporary PEF disable
              The PEF Postpone timer does not countdown from the value
              The BMC automatically re-enables PEF (if enabled in the PEF configuration parameters) and sets the PEF Postpone timeout to 00h whenever the system enters a sleep state, is powered down, or reset
              Software can cancel this disable by setting this parameter to 00h or 01h-FDh
        FFh = get present countdown value

[FreeIPMI]
ipmi-raw 0x00 0x04 0x11 D[1] Byte 1
Request Data Byte 1
[7:0] - PEF Postpone Timeout, in seconds
        00h = disable Postpone Timer
              (PEF will immediately handle events, if enabled)
              The BMC automatically disables the timer whenever the system enters a sleep state, is powered down, or reset
        01h - FDh = arm timer
              Timer will automatically start counting down from given value when the last-processed event Record ID is not equal to the last received event's Record ID
        FEh = Temporary PEF disable
              The PEF Postpone timer does not countdown from the value
              The BMC automatically re-enables PEF (if enabled in the PEF configuration parameters) and sets the PEF Postpone timeout to 00h whenever the system enters a sleep state, is powered down, or reset
              Software can cancel this disable by setting this parameter to 00h or 01h-FDh
        FFh = get present countdown value

| MS-DOS |
[ipmitool]
ipmitool 20 10 11 Data[1]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
Arm Timer
$ ipmitool raw 0x04 0x11 0xfd
 fd Byte 2
Response Data Byte 2
Present timer countdown value

Get Present Countdown Value
$ ipmitool raw 0x04 0x11 0xff
 fd Byte 2
Response Data Byte 2
Present timer countdown value

Temporary PEF Disable
$ ipmitool raw 0x04 0x11 0xfe
 fe Byte 2
Response Data Byte 2
Present timer countdown value

[ipmiutil in Linux]
$ icmd 00 20 10 11 fd
ipmiutil ver 3.08
icmd ver 3.08v 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]: fd Byte 2
Response Data Byte 2
Present timer countdown value

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x04 0x11 0x10
rcvd: 11 00 Byte 1
Completion Code
00h = Command Completed Normally
10 Byte 2
Response Data Byte 2
Present timer countdown value



Set PEF Configuration Parameters - NetFn = Sensor/Event (0x04h), CMD = 0x12h, Privilege Level = Admin, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x04 0x12 D[1] Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
 #0 - Set In Progress(volatile)
 #1 - PEF control(non-volatile)
 #2 - PEF Action global control(non-volatile)
 #3 - PEF Startup Delay(optional, non-volatile)
 #4 - PEF Alert Startup Delay(optional, non-volatile)
 #5 - Number of Event Filters(READ ONLY)
 #6 - Event Filter Table(nonvolatile)
 #7 - Event Filter Table Data 1(non-volatile)
 #8 - Number of Alert Policy Entries(READ ONLY)
 #9 - Alert Policy Table(non-volatile)
#10 - System GUID(non-volatile)
#11 - Number of Alert Strings(READ ONLY)
#12 - Alert String Keys(volatile) & (non-volatile)
#13 - Alert Strings (volatile) & (non-volatile)
#14 - Number of Group Control Table entries(READ ONLY)
#15 - Group Control Table
#96:127 - OEM Parameters(optional. Non-volatile or volatile as specified by OEM)
D[2:N] Byte [2:N]
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters

Parameter #1, PEF Control
ipmitool raw 0x04 0x12 0x01 Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
 #1 - PEF control(non-volatile)
D[2] Byte 2
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 1
[7:4] - reserved
  [3] - PEF Alert Startup Delay disable (optional)
        1b = enable PEF Alert Startup delay
        0b = disable PEF startup delay
  [2] - PEF Startup Delay disable(optional)
        1b = enable PEF startup delay on manual
        0b = disable PEF startup delay
  [1] - 1b = enable event messages for PEF actions
        0b = disable event messages for PEF actions
  [0] - 1b = enable PEF
        0b = disable PEF

Parameter #2, PEF Action Global Control
ipmitool raw 0x04 0x12 0x02 Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
 #2 - PEF Action global control(non-volatile)
D[2] Byte 2
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 1
[7:6] - reserved
  [5] - 1b = enable diagnostic interrupt
  [4] - 1b = enable OEM action
  [3] - 1b = enable power cycle action (No effect if power is already off)
  [2] - 1b = enable reset action
  [1] - 1b = enable power down action
  [0] - 1b = enable Alert action

Parameter #3, PEF Startup Delay
ipmitool raw 0x04 0x12 0x03 Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
 #3 - PEF Startup Delay(optional, non-volatile)
D[2] Byte 2
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 1
time to delay PEF after a system power-ups (from S4/S5) and resets
Default = 60 seconds
If this parameter is not provided, the default PEF Startup Delay must be implemented
[7:0] - PEF Startup Delay in seconds, +/- 10%. 1-based
00h = no delay

Parameter #4, PEF Alert Startup Delay
ipmitool raw 0x04 0x12 0x04 Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
 #4 - PEF Alert Startup Delay(optional, non-volatile)
D[2] Byte 2
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 1
time to delay Alerts after system power-ups (from S4/S5) and resets
Default = platform-specific. 60-seconds typical
If this parameter is not provided, a default PEF Startup Delay, appropriate for the platform, must be implemented
[7:0] - PEF Alert Startup Delay in seconds, +/- 10%. 1-based
00h = no delay

Parameter #6, Event Filter Table
ipmitool raw 0x04 0x12 0x06 Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
 #6 - Event Filter Table, (nonvolatile)
D[2] Byte 2
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 1 - Set Selector = filter number
[7:0] - Filter number. 1-based
00h = reserved
D[3:22] Byte [3:22]
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 2:21 - filter data

Parameter #7, Event Filter Table Data 1
ipmitool raw 0x04 0x12 0x07 Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
 #7 - Event Filter Table Data 1(non-volatile)
D[2] Byte 2
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 1 - Set Selector = filter number
This parameter provides an aliased access to the first byte of the event filter data
This is provided to simplify the act of enabling and disabling individual filters by avoiding the need to do a read-modify-write of the entire filter data
[7:0] - Filter number. 1-based
00h = reserved
D[3] Byte 3
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 2 - data byte 1 of event filter data

Parameter #9, Alert Policy Table
ipmitool raw 0x04 0x12 0x09 Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
 #9 - Alert Policy Table(non-volatile)
D[2] Byte 2
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 1 - Set Selector = entry number
[7] - reserved
[6:0] - alert policy entry number. 1-based
D[3:5] Byte [3:5]
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 2:4 - entry data

Parameter #10, System GUID
ipmitool raw 0x04 0x12 0x0a Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
#10 - System GUID(non-volatile)
D[2] Byte 2
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 1 Used to fill in the GUID field in a PET Trap
[7:1] - reserved
  [0] - 1b = BMC uses following value in PET Trap
        0b = BMC ignores following value and uses value returned from Get System GUID command instead
D[3:18] Byte [3:18]
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
2:17 - System GUID

Parameter #12, Alert String Keys
ipmitool raw 0x04 0x12 0x0c Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
#12 - Alert String Keys(volatile) & (non-volatile)
D[2] Byte 2
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 1 - Set Selector = Alert string selector.   [7] - reserved
[6:0] - string selector
        0 = selects volatile string parameters
        01h-7Fh = non-volatile string selectors
D[3] Byte 3
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 2 - Event Filter Number
  [7] - reserved
[6:0] - Filter number. 1-based
00h = unspecified
D[4] Byte 4
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 3 - Alert String Set
  [7] - reserved
[6:0] - Set number for string. 1-based
00h = unspecified

Parameter #13, Alert Strings
ipmitool raw 0x04 0x12 0x0d Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
#13 - Alert Strings(volatile) & (non-volatile)
D[2] Byte 2
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 1 - Set Selector = string selector
  [7] - reserved
[6:0] - string selector
        0 = selects volatile string
        01h-7Fh = non-volatile string selectors
D[3] Byte 3
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 2 - Block Selector = string block number to set, 1 based
Blocks are 16 bytes
D[4:N] Byte [4:N]
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 3:N - String data
Null terminated 8-bit ASCII string
16-bytes max per block

Parameter #15, Group Control Table
ipmitool raw 0x04 0x12 0x0f Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
#15 - Group Control Table(optional, non-volatile)
D[2] Byte 2
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 1 - Set Selector = group control table entry selector
  [7] - reserved
[6:0] - group control table entry selector
D[3] Byte 3
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 2
[7:6] - reserved
  [5] - Request/Force
        0b = request control operation
        1b = force control operation
  [4] - Immediate/Delayed
        0b = immediate control
        1b = delayed control
[3:0] - Channel Number
D[4] Byte 4
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 3 - Group ID 0 (1-based)
00h = unspecified
FFh = all groups
D[5] Byte 5
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 4 - Member ID 0 (0-based)
[7:5] - reserved
  [4] - 0b = enable member ID check
        1b = disable member ID check[1]
[3:0] - member ID
        ID of this chassis within specified group
        (value is ignored if Group ID 0 = FFh)
D[6] Byte 6
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 5 - Group ID 1 (1-based)
00h = unspecified
FFh = all groups
D[7] Byte 7
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 6 - Member ID 1 (0-based)
[7:5] - reserved
  [4] - 0b = enable member ID check
        1b = disable member ID check[1]
[3:0] - member ID
        ID of this chassis within specified group
        (value is ignored if Group ID 1 = FFh)
D[8] Byte 8
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 7 - Group ID 2 (1-based)
00h = unspecified
FFh = all groups
D[9] Byte 9
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 8 - Member ID 2 (0-based)
[7:5] - reserved
  [4] - 0b = enable member ID check
        1b = disable member ID check[1]
[3:0] - member ID
        ID of this chassis within specified group
        (value is ignored if Group ID 2 = FFh)
D[10] Byte 10
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 9 - Group ID 3 (1-based)
00h = unspecified
FFh = all groups
D[11] Byte 11
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 10: Member ID 3 (0-based)
[7:5] - reserved
  [4] - 0b = enable member ID check
        1b = disable member ID check[1]
[3:0] - member ID
        ID of this chassis within specified group
        (value is ignored if Group ID 3 = FFh)
D[12] Byte 12
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters
data 11 - Retries and Operation
  [7] - reserved
[6:4] - number of times to retry sending the command to perform the group operation (1-based)
[3:0] - operation
        0h = power down
        1h = power up
        2h = power cycle (optional). This command provides a power off interval of at least 1 second
        3h = hard reset
        4h = pulse Diagnostic Interrupt (optional)
        5h = Initiate a soft-shutdown of OS via ACPI by emulating a fatal overtemperature (optional)

[ipmiutil]
ipmiutil cmd 00 20 10 12 D[1] Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
 #0 - Set In Progress(volatile)
 #1 - PEF control(non-volatile)
 #2 - PEF Action global control(non-volatile)
 #3 - PEF Startup Delay(optional, non-volatile)
 #4 - PEF Alert Startup Delay(optional, non-volatile)
 #5 - Number of Event Filters(READ ONLY)
 #6 - Event Filter Table(nonvolatile)
 #7 - Event Filter Table Data 1(non-volatile)
 #8 - Number of Alert Policy Entries(READ ONLY)
 #9 - Alert Policy Table(non-volatile)
#10 - System GUID(non-volatile)
#11 - Number of Alert Strings(READ ONLY)
#12 - Alert String Keys(volatile) & (non-volatile)
#13 - Alert Strings (volatile) & (non-volatile)
#14 - Number of Group Control Table entries(READ ONLY)
#15 - Group Control Table
#96:127 - OEM Parameters(optional. Non-volatile or volatile as specified by OEM)
D[2:N] Byte [2:N]
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters

icmd 00 20 10 12 D[1] Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
 #0 - Set In Progress(volatile)
 #1 - PEF control(non-volatile)
 #2 - PEF Action global control(non-volatile)
 #3 - PEF Startup Delay(optional, non-volatile)
 #4 - PEF Alert Startup Delay(optional, non-volatile)
 #5 - Number of Event Filters(READ ONLY)
 #6 - Event Filter Table(nonvolatile)
 #7 - Event Filter Table Data 1(non-volatile)
 #8 - Number of Alert Policy Entries(READ ONLY)
 #9 - Alert Policy Table(non-volatile)
#10 - System GUID(non-volatile)
#11 - Number of Alert Strings(READ ONLY)
#12 - Alert String Keys(volatile) & (non-volatile)
#13 - Alert Strings (volatile) & (non-volatile)
#14 - Number of Group Control Table entries(READ ONLY)
#15 - Group Control Table
#96:127 - OEM Parameters(optional. Non-volatile or volatile as specified by OEM)
D[2:N] Byte [2:N]
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters

[FreeIPMI]
ipmi-raw 0x00 0x04 0x12 D[1] Byte 1
Parameter Selector
  [7] - reserved
[6:0] - Parameter selector
 #0 - Set In Progress(volatile)
 #1 - PEF control(non-volatile)
 #2 - PEF Action global control(non-volatile)
 #3 - PEF Startup Delay(optional, non-volatile)
 #4 - PEF Alert Startup Delay(optional, non-volatile)
 #5 - Number of Event Filters(READ ONLY)
 #6 - Event Filter Table(nonvolatile)
 #7 - Event Filter Table Data 1(non-volatile)
 #8 - Number of Alert Policy Entries(READ ONLY)
 #9 - Alert Policy Table(non-volatile)
#10 - System GUID(non-volatile)
#11 - Number of Alert Strings(READ ONLY)
#12 - Alert String Keys(volatile) & (non-volatile)
#13 - Alert Strings (volatile) & (non-volatile)
#14 - Number of Group Control Table entries(READ ONLY)
#15 - Group Control Table
#96:127 - OEM Parameters(optional. Non-volatile or volatile as specified by OEM)
D[2:N] Byte [2:N]
Configuration Parameter Data
per Table 30-6, PEF Configuration Parameters

| MS-DOS |
[ipmitool]
ipmitool 20 10 12 Data[1:N]

--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
83h = attempt to read write-only parameter

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
Parameter #1, PEF Control
$ ipmitool raw 0x04 0x12 0x01 0x0f

[ipmiutil in Linux]
Parameter #2, PEF Action Global Control
$ icmd 00 20 10 12 02 0f
ipmiutil cmd ver 3.10
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]
Parameter #3, PEF Startup Delay
$ ipmi-raw 0x00 0x04 0x12 0x03 0x10
rcvd: 12 00 Byte 1
Completion Code
00h = Command Completed Normally



Get PEF Configuration Parameters - NetFn = Sensor/Event (0x04h), CMD = 0x13h, Privilege Level = Operator, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x04 0x13 D[1] Byte 1
Request Data Byte 1
  [7] - 1b = get parameter revision only
        0b = get parameter
[6:0] - Parameter selector
D[2] Byte 2
Set Selector
Set Selector
(00h if parameter does not require a Set Selector)
D[3] Byte 3
Block Selector
Block Selector
(00h if parameter does not require a block number)

ipmitool pef info
ipmitool pef list
[ipmiutil]
ipmiutil cmd 00 20 10 13 D[1] Byte 1
Request Data Byte 1
  [7] - 1b = get parameter revision only
        0b = get parameter
[6:0] - Parameter selector
D[2] Byte 2
Set Selector
Set Selector
(00h if parameter does not require a Set Selector)
D[3] Byte 3
Block Selector
Block Selector
(00h if parameter does not require a block number)

icmd 00 20 10 13 D[1] Byte 1
Request Data Byte 1
  [7] - 1b = get parameter revision only
        0b = get parameter
[6:0] - Parameter selector
D[2] Byte 2
Set Selector
Set Selector
(00h if parameter does not require a Set Selector)
D[3] Byte 3
Block Selector
Block Selector
(00h if parameter does not require a block number)

[FreeIPMI]
ipmi-raw 0x00 0x04 0x13 D[1] Byte 1
Request Data Byte 1
  [7] - 1b = get parameter revision only
        0b = get parameter
[6:0] - Parameter selector
D[2] Byte 2
Set Selector
Set Selector
(00h if parameter does not require a Set Selector)
D[3] Byte 3
Block Selector
Block Selector
(00h if parameter does not require a block number)

| MS-DOS |
[ipmitool]
ipmitool 20 10 13 Data[1:3]

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

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
Parameter #1, PEF control
$ ipmitool raw 0x04 0x13 0x01 0x00 0x00
 11 Byte 2
Response Data Byte 2
[7:0] - Parameter revision
Format:
MSN = present revision
LSN = oldest revision parameter is backward compatible with
11h for parameters in this specification
0f Byte 3
Response Data Byte 3
Configuration parameter data, per Table 30-6, PEF Configuration Parameters
data 1
[7:4] - reserved
  [3] - PEF Alert Startup Delay disable (optional)
        1b = enable PEF Alert Startup delay
        0b = disable PEF startup delay
  [2] - PEF Startup Delay disable(optional)
        1b = enable PEF startup delay on manual
        0b = disable PEF startup delay
  [1] - 1b = enable event messages for PEF actions
        0b = disable event messages for PEF actions
  [0] - 1b = enable PEF
        0b = disable PEF

$ ipmitool pef info
 0x51 | 40 | 60 | d8cb8af7-c6b6-9f03-0010-debf54873a6c | Alert,Power-off,Reset,Power-cycle,OEM-defined,Diagnostic-interrupt
[ipmiutil in Linux]
Parameter #5, Number of Event Filters
$ icmd 00 20 10 13 05 00 00
ipmiutil cmd ver 3.10
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]: 11 Byte 2
Response Data Byte 2
[7:0] - Parameter revision
Format:
MSN = present revision
LSN = oldest revision parameter is backward compatible with
11h for parameters in this specification
28 Byte 3
Response Data Byte 3
Configuration parameter data, per Table 30-6, PEF Configuration Parameters
Number of event filters supported. 1-based
This parameter does not need to be supported if Alerting is not supported
[7:0] - number of event filter entries
0 = alerting not supported

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
Parameter #11, Number of Alert Strings
$ ipmi-raw 0x00 0x04 0x13 0x0b 0x00 0x00
rcvd: 13 00 Byte 1
Completion Code
00h = Command Completed Normally
80h = parameter not supported
11 Byte 2
Response Data Byte 2
[7:0] - Parameter revision
Format:
MSN = present revision
LSN = oldest revision parameter is backward compatible with
11h for parameters in this specification
28 Byte 3
Response Data Byte 3
Configuration parameter data, per Table 30-6, PEF Configuration Parameters
Number of alert strings supported in addition to Alert String 0. 1-based
This parameter does not need to be supported if Alerting is not supported
  [7] - reserved
[6:0] - number of alert strings



Set Last Processed Event ID - NetFn = Sensor/Event (0x04h), CMD = 0x14h, Privilege Level = Admin, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x04 0x14 D[1] Byte 1
Request Data Byte 1
[7:1] - reserved
  [0] - 0b = set Record ID for last record processed by software
        1b = set Record ID for last record processed by BMC
D[2:3] Byte [2:3]
Record ID
Record ID
LS-byte first

[ipmiutil]
ipmiutil cmd 00 20 10 14 D[1] Byte 1
Request Data Byte 1
[7:1] - reserved
  [0] - 0b = set Record ID for last record processed by software
        1b = set Record ID for last record processed by BMC
D[2:3] Byte [2:3]
Record ID
Record ID
LS-byte first

icmd 00 20 10 14 D[1] Byte 1
Request Data Byte 1
[7:1] - reserved
  [0] - 0b = set Record ID for last record processed by software
        1b = set Record ID for last record processed by BMC
D[2:3] Byte [2:3]
Record ID
Record ID
LS-byte first

[FreeIPMI]
ipmi-raw 0x00 0x04 0x14 D[1] Byte 1
Request Data Byte 1
[7:1] - reserved
  [0] - 0b = set Record ID for last record processed by software
        1b = set Record ID for last record processed by BMC
D[2:3] Byte [2:3]
Record ID
Record ID
LS-byte first

| MS-DOS |
[ipmitool]
ipmitool 20 10 14 Data[1:3]

--Completion Code--
81h = cannot execute command, SEL erase in progress

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

$ ipmitool raw 0x04 0x14 0x01 0x08 0x00

[ipmiutil in Linux]
$ icmd 00 20 10 14 01 ff ff
ipmiutil cmd ver 3.10
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 0x04 0x14 0x00 0xff 0xff
rcvd: 14 00 Byte 1
Completion Code
00h = Command Completed Normally
81h = cannot execute command, SEL erase in progress



Get Last Processed Event ID - NetFn = Sensor/Event (0x04h), CMD = 0x15h, Privilege Level = Admin, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x15
ipmitool pef status
[ipmiutil]
ipmiutil cmd 00 20 10 15
icmd 00 20 10 15
[FreeIPMI]
ipmi-raw 0x00 0x04 0x15
| MS-DOS |
[ipmitool]
ipmitool 20 10 15

--Completion Code--
81h = cannot execute command, SEL erase in progress

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x04 0x15
 5d 55 0b 5b Byte [2:5]
Most Recent Addition Timestamp
Most recent addition timestamp
LS byte first
08 00 Byte [6:7]
Record ID for Last Record in SEL
Record ID for last record in SEL
Returns FFFFh if SEL is empty
ff ff Byte [8:9]
Last SW Processed Event Record ID
Last SW Processed Event Record ID
ff ff Byte [10:11]
Last BMC Processed Event Record ID
Last BMC Processed Event Record ID
Returns 0000h when event has been processed but could not be logged because the SEL is full or logging has been disabled

$ ipmitool pef status
 05/28/2018 01:03:25 | 0x0008 | 0xffff | 0xffff | PEF,PEF event messages,PEF startup delay,Alert startup delay | Alert,Power-off,Reset,Power-cycle
[ipmiutil in Linux]
$ icmd 00 20 10 15
ipmiutil cmd ver 3.10
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=10]: 5d 55 0b 5b Byte [2:5]
Most Recent Addition Timestamp
Most recent addition timestamp
LS byte first
08 00 Byte [6:7]
Record ID for Last Record in SEL
Record ID for last record in SEL
Returns FFFFh if SEL is empty
ff ff Byte [8:9]
Last SW Processed Event Record ID
Last SW Processed Event Record ID
ff ff Byte [10:11]
Last BMC Processed Event Record ID
Last BMC Processed Event Record ID
Returns 0000h when event has been processed but could not be logged because the SEL is full or logging has been disabled

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x04 0x15
rcvd: 15 00 Byte 1
Completion Code
00h = Command Completed Normally
81h = cannot execute command, SEL erase in progress
5D 55 0B 5B Byte [2:5]
Most Recent Addition Timestamp
Most recent addition timestamp
LS byte first
08 00 Byte [6:7]
Record ID for Last Record in SEL
Record ID for last record in SEL
Returns FFFFh if SEL is empty
FF FF Byte [8:9]
Last SW Processed Event Record ID
Last SW Processed Event Record ID
FF FF Byte [10:11]
Last BMC Processed Event Record ID
Last BMC Processed Event Record ID
Returns 0000h when event has been processed but could not be logged because the SEL is full or logging has been disabled



Alert Immediate - NetFn = Sensor/Event (0x04h), CMD = 0x16h, Privilege Level = Admin, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x16 D[1] Byte 1
Channel Number
(This value is required to select which configuration parameters are to be used to send the Alert.)
[7:4] - reserved
[3:0] - Channel number
Note: BMC stores the 'Alert immediate status' for each channel that can send alert
D[2] Byte 2
Destination Selector/ Operation
[7:6] - Operation
        00b = Initiate alert
        01b = Get Alert Immediate status
        10b = Clear Alert Immediate status (sets status to 00h)
        11b = reserved
[5:4] - Reserved
[3:0] - destination selector
        Selects which alert destination should go to
        0h = use volatile destination info
        1h-Fh = non-volatile destination
Note: If Operation is 'Get Alert Immediate status' or 'Clear Alert Immediate Status' bits [3:0] are reserved
D[3] Byte 3
Alert String Selector
Selects which Alert String, if any, to use with the alert
  [7] - 0b = don’t send an Alert String
        1b = send Alert String identified by following string selector
[6:0] - string selector
        000_0000b = use volatile Alert String
        01h-7Fh = non-volatile string selector

With Platform Event Parameters (Highly Recommended for IPMI v2.0 Implementations)
ipmitool raw 0x04 0x16 D[1] Byte 1
Channel Number
(This value is required to select which configuration parameters are to be used to send the Alert.)
[7:4] - reserved
[3:0] - Channel number
Note: BMC stores the 'Alert immediate status' for each channel that can send alert
D[2] Byte 2
Destination Selector/ Operation
[7:6] - Operation
        00b = Initiate alert
        01b = Get Alert Immediate status
        10b = Clear Alert Immediate status (sets status to 00h)
        11b = reserved
[5:4] - Reserved
[3:0] - destination selector
        Selects which alert destination should go to
        0h = use volatile destination info
        1h-Fh = non-volatile destination
Note: If Operation is 'Get Alert Immediate status' or 'Clear Alert Immediate Status' bits [3:0] are reserved
D[3] Byte 3
Alert String Selector
Selects which Alert String, if any, to use with the alert
  [7] - 0b = don’t send an Alert String
        1b = send Alert String identified by following string selector
[6:0] - string selector
        000_0000b = use volatile Alert String
        01h-7Fh = non-volatile string selector
D[4] Byte 4
Generator ID
D[5] Byte 5
EvMRev
D[6] Byte 6
Sensor Type
D[7] Byte 7
Sensor #
D[8] Byte 8
Event Dir | Event Type
D[9] Byte 9
Event Data 1
D[10] Byte 10
Event Data 2
D[11] Byte 11
Event Data 3

[ipmiutil]
ipmiutil cmd 00 20 10 16 D[1] Byte 1
Channel Number
(This value is required to select which configuration parameters are to be used to send the Alert.)
[7:4] - reserved
[3:0] - Channel number
Note: BMC stores the 'Alert immediate status' for each channel that can send alert
D[2] Byte 2
Destination Selector/ Operation
[7:6] - Operation
        00b = Initiate alert
        01b = Get Alert Immediate status
        10b = Clear Alert Immediate status (sets status to 00h)
        11b = reserved
[5:4] - Reserved
[3:0] - destination selector
        Selects which alert destination should go to
        0h = use volatile destination info
        1h-Fh = non-volatile destination
Note: If Operation is 'Get Alert Immediate status' or 'Clear Alert Immediate Status' bits [3:0] are reserved
D[3] Byte 3
Alert String Selector
Selects which Alert String, if any, to use with the alert
  [7] - 0b = don’t send an Alert String
        1b = send Alert String identified by following string selector
[6:0] - string selector
        000_0000b = use volatile Alert String
        01h-7Fh = non-volatile string selector

With Platform Event Parameters (Highly Recommended for IPMI v2.0 Implementations)
icmd 00 20 10 16 D[1] Byte 1
Channel Number
(This value is required to select which configuration parameters are to be used to send the Alert.)
[7:4] - reserved
[3:0] - Channel number
Note: BMC stores the 'Alert immediate status' for each channel that can send alert
D[2] Byte 2
Destination Selector/ Operation
[7:6] - Operation
        00b = Initiate alert
        01b = Get Alert Immediate status
        10b = Clear Alert Immediate status (sets status to 00h)
        11b = reserved
[5:4] - Reserved
[3:0] - destination selector
        Selects which alert destination should go to
        0h = use volatile destination info
        1h-Fh = non-volatile destination
Note: If Operation is 'Get Alert Immediate status' or 'Clear Alert Immediate Status' bits [3:0] are reserved
D[3] Byte 3
Alert String Selector
Selects which Alert String, if any, to use with the alert
  [7] - 0b = don’t send an Alert String
        1b = send Alert String identified by following string selector
[6:0] - string selector
        000_0000b = use volatile Alert String
        01h-7Fh = non-volatile string selector
D[4] Byte 4
Generator ID
D[5] Byte 5
EvMRev
D[6] Byte 6
Sensor Type
D[7] Byte 7
Sensor #
D[8] Byte 8
Event Dir | Event Type
D[9] Byte 9
Event Data 1
D[10] Byte 10
Event Data 2
D[11] Byte 11
Event Data 3

[FreeIPMI]
ipmi-raw 0x00 0x04 0x16 D[1] Byte 1
Channel Number
(This value is required to select which configuration parameters are to be used to send the Alert.)
[7:4] - reserved
[3:0] - Channel number
Note: BMC stores the 'Alert immediate status' for each channel that can send alert
D[2] Byte 2
Destination Selector/ Operation
[7:6] - Operation
        00b = Initiate alert
        01b = Get Alert Immediate status
        10b = Clear Alert Immediate status (sets status to 00h)
        11b = reserved
[5:4] - Reserved
[3:0] - destination selector
        Selects which alert destination should go to
        0h = use volatile destination info
        1h-Fh = non-volatile destination
Note: If Operation is 'Get Alert Immediate status' or 'Clear Alert Immediate Status' bits [3:0] are reserved
D[3] Byte 3
Alert String Selector
Selects which Alert String, if any, to use with the alert
  [7] - 0b = don’t send an Alert String
        1b = send Alert String identified by following string selector
[6:0] - string selector
        000_0000b = use volatile Alert String
        01h-7Fh = non-volatile string selector

With Platform Event Parameters (Highly Recommended for IPMI v2.0 Implementations)
ipmi-raw 0x00 0x04 0x16 D[1] Byte 1
Channel Number
(This value is required to select which configuration parameters are to be used to send the Alert.)
[7:4] - reserved
[3:0] - Channel number
Note: BMC stores the 'Alert immediate status' for each channel that can send alert
D[2] Byte 2
Destination Selector/ Operation
[7:6] - Operation
        00b = Initiate alert
        01b = Get Alert Immediate status
        10b = Clear Alert Immediate status (sets status to 00h)
        11b = reserved
[5:4] - Reserved
[3:0] - destination selector
        Selects which alert destination should go to
        0h = use volatile destination info
        1h-Fh = non-volatile destination
Note: If Operation is 'Get Alert Immediate status' or 'Clear Alert Immediate Status' bits [3:0] are reserved
D[3] Byte 3
Alert String Selector
Selects which Alert String, if any, to use with the alert
  [7] - 0b = don’t send an Alert String
        1b = send Alert String identified by following string selector
[6:0] - string selector
        000_0000b = use volatile Alert String
        01h-7Fh = non-volatile string selector
D[4] Byte 4
Generator ID
D[5] Byte 5
EvMRev
D[6] Byte 6
Sensor Type
D[7] Byte 7
Sensor #
D[8] Byte 8
Event Dir | Event Type
D[9] Byte 9
Event Data 1
D[10] Byte 10
Event Data 2
D[11] Byte 11
Event Data 3

| MS-DOS |
[ipmitool]
ipmitool 20 10 16 Data[1:3]
With Platform Event Parameters (Highly Recommended for IPMI v2.0 Implementations)
ipmitool 20 10 16 Data[1:11]

--Completion Code--
81h = Alert Immediate rejected due to alert already in progress
82h = Alert Immediate rejected due to IPMI messaging session active on this channel
83h = Platform Event Parameters (4:11) not supported

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
Channel 0x08, Initiate Alert
$ ipmitool raw 0x04 0x16 0x08 0x00 0x80 0x01 0x02 0x03 0x02 0x02 0x01 0x02 0x03

Channel 0x08, Get Alert Immediate Status
$ ipmitool raw 0x04 0x16 0x08 0x40 0x00
 00 Byte 2
Response Data Byte 2
Alert Immediate Status
SMS can poll this status to determine present state of the immediate alert
00h = No status
01h = Alert was Normal End
02h = "Call Retry" (Dial connection) retries failed
03h = Alert failed due to timeouts waiting for acknowledge on all retries
FFh = Alert by this command is in progress. Status pending

Channel 0x08, Clear Alert Immediate Status
$ ipmitool raw 0x04 0x16 0x08 0x80 0x00

[ipmiutil in Linux]
Channel 0x01, Clear Alert Immediate Status
$ icmd 00 20 10 16 01 80 00
ipmiutil cmd ver 3.10
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 0x04 0x16 0x01 0x81 0x81
rcvd: 16 00 Byte 1
Completion Code
00h = Command Completed Normally
81h = Alert Immediate rejected due to alert already in progress
82h = Alert Immediate rejected due to IPMI messaging session active on this channel
83h = Platform Event Parameters (4:11) not supported



PET Acknowledge - NetFn = Sensor/Event (0x04h), CMD = 0x17h, Privilege Level = Any, M/O = O


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: May 29, 2018

3 comments:

  1. I'm trying to configure approximately 90 Dell C6220 II using IPMItool to trigger a system shutdown upon reaching Upper Critical temperatures for any sensor. I can't seem to find a comprehensive list of raw commands anywhere, do you have any advice?

    ReplyDelete
    Replies
    1. Hi, what comprehensive list of raw commands you need? Please provide more information.
      Does IPMI Spec could help you find the need?
      https://www.intel.com.tw/content/www/tw/zh/servers/ipmi/ipmi-second-gen-interface-spec-v2-rev1-1.html

      Delete
  2. Hello,
    in PEF Alert Policy table ,

    Parameter #9, Alert Policy Table
    ipmitool raw 0x04 0x12 0x09Byte 1
    Parameter Selector
    [7] - reserved
    [6:0] - Parameter selector
    #9 - Alert Policy Table(non-volatile) D[2]Byte 2
    Configuration Parameter Data
    per Table 30-6, PEF Configuration Parameters
    data 1 - Set Selector = entry number
    [7] - reserved
    [6:0] - alert policy entry number. 1-based D[3:5]

    What is D1 and D3:5 here

    ReplyDelete