Pages

Friday, May 17, 2013

[IPMI] Sensor Device Commands

[IPMI] Sensor Device Commands Get Device SDR Info - NetFn = Sensor/Event (0x04h), CMD = 0x20h, Privilege Level = Local, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x20 (D[1]) (Byte 1)
Operation (optional)
[7:1] - reserved
  [0] - 1b = Get SDR count
        This returns the total number of SDRs in the device
        0b = Get Sensor count
        This returns the number of sensors implemented on LUN this command was addressed to

ipmitool sdr info
[ipmiutil]
ipmiutil cmd 00 20 10 20 (D[1]) (Byte 1)
Operation (optional)
[7:1] - reserved
  [0] - 1b = Get SDR count
        This returns the total number of SDRs in the device
        0b = Get Sensor count
        This returns the number of sensors implemented on LUN this command was addressed to

icmd 00 20 10 20 (D[1]) (Byte 1)
Operation (optional)
[7:1] - reserved
  [0] - 1b = Get SDR count
        This returns the total number of SDRs in the device
        0b = Get Sensor count
        This returns the number of sensors implemented on LUN this command was addressed to

[FreeIPMI]
ipmi-raw 0x00 0x04 0x20 (D[1]) (Byte 1)
Operation (optional)
[7:1] - reserved
  [0] - 1b = Get SDR count
        This returns the total number of SDRs in the device
        0b = Get Sensor count
        This returns the number of sensors implemented on LUN this command was addressed to

| MS-DOS |
[ipmitool]
ipmitool 20 10 20 (Data[1])
For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x04 0x20
 16 Byte 2
Response Data Byte 2
For Operation = "Get Sensor Count" (or if byte 1 not present in request):
Number of sensors in device for LUN this command was addressed to
For Operation = "Get SDR Count":
Total Number of SDRs in the device
01 Byte 3
Flags
Dynamic population
  [7] - 0b = static sensor population
        The number of sensors handled by this device is fixed, and a query shall return records for all sensors
        1b = dynamic sensor population
        This device may have its sensor population vary during 'run time'
        (defined as any time other that when an install operation is in progress)
Reserved
[6:4] - reserved
Device LUNs
  [3] - 1b = LUN 3 has sensors
  [2] - 1b = LUN 2 has sensors
  [1] - 1b = LUN 1 has sensors
  [0] - 1b = LUN 0 has sensors
00 00 00 00 Byte [4:7]
Sensor Population Change Indicator
LS byte first
Four byte timestamp, or counter
Updated or incremented each time the sensor population changes
This field is not provided if the flags indicate a static sensor population

$ ipmitool raw 0x04 0x20 0x00
 16 Byte 2
Response Data Byte 2
For Operation = "Get Sensor Count" (or if byte 1 not present in request):
Number of sensors in device for LUN this command was addressed to
For Operation = "Get SDR Count":
Total Number of SDRs in the device
01 Byte 3
Flags
Dynamic population
  [7] - 0b = static sensor population
        The number of sensors handled by this device is fixed, and a query shall return records for all sensors
        1b = dynamic sensor population
        This device may have its sensor population vary during 'run time'
        (defined as any time other that when an install operation is in progress)
Reserved
[6:4] - reserved
Device LUNs
  [3] - 1b = LUN 3 has sensors
  [2] - 1b = LUN 2 has sensors
  [1] - 1b = LUN 1 has sensors
  [0] - 1b = LUN 0 has sensors
00 00 00 00 Byte [4:7]
Sensor Population Change Indicator
LS byte first
Four byte timestamp, or counter
Updated or incremented each time the sensor population changes
This field is not provided if the flags indicate a static sensor population

$ ipmitool raw 0x04 0x20 0x01
 1c Byte 2
Response Data Byte 2
For Operation = "Get Sensor Count" (or if byte 1 not present in request):
Number of sensors in device for LUN this command was addressed to
For Operation = "Get SDR Count":
Total Number of SDRs in the device
01 Byte 3
Flags
Dynamic population
  [7] - 0b = static sensor population
        The number of sensors handled by this device is fixed, and a query shall return records for all sensors
        1b = dynamic sensor population
        This device may have its sensor population vary during 'run time'
        (defined as any time other that when an install operation is in progress)
Reserved
[6:4] - reserved
Device LUNs
  [3] - 1b = LUN 3 has sensors
  [2] - 1b = LUN 2 has sensors
  [1] - 1b = LUN 1 has sensors
  [0] - 1b = LUN 0 has sensors
00 00 00 00 Byte [4:7]
Sensor Population Change Indicator
LS byte first
Four byte timestamp, or counter
Updated or incremented each time the sensor population changes
This field is not provided if the flags indicate a static sensor population

$ ipmitool sdr info
SDR Version                         : 0x51
Record Count                        : 28
Free Space                          : 8656 bytes
Most recent Addition                : 05/24/2018 09:06:50
Most recent Erase                   :
SDR overflow                        : no
SDR Repository Update Support       : non-modal
Delete SDR supported                : no
Partial Add SDR supported           : yes
Reserve SDR repository supported    : yes
SDR Repository Alloc info supported : yes
[ipmiutil in Linux]
$ icmd 00 20 10 20 01
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=6]: 1c Byte 2
Response Data Byte 2
For Operation = "Get Sensor Count" (or if byte 1 not present in request):
Number of sensors in device for LUN this command was addressed to
For Operation = "Get SDR Count":
Total Number of SDRs in the device
01 Byte 3
Flags
Dynamic population
  [7] - 0b = static sensor population
        The number of sensors handled by this device is fixed, and a query shall return records for all sensors
        1b = dynamic sensor population
        This device may have its sensor population vary during 'run time'
        (defined as any time other that when an install operation is in progress)
Reserved
[6:4] - reserved
Device LUNs
  [3] - 1b = LUN 3 has sensors
  [2] - 1b = LUN 2 has sensors
  [1] - 1b = LUN 1 has sensors
  [0] - 1b = LUN 0 has sensors
00 00 00 00 Byte [4:7]
Sensor Population Change Indicator
LS byte first
Four byte timestamp, or counter
Updated or incremented each time the sensor population changes
This field is not provided if the flags indicate a static sensor population

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x04 0x20
rcvd: 20 00 Byte 1
Completion Code
00h = Command Completed Normally
16 Byte 2
Response Data Byte 2
For Operation = "Get Sensor Count" (or if byte 1 not present in request):
Number of sensors in device for LUN this command was addressed to
For Operation = "Get SDR Count":
Total Number of SDRs in the device
01 Byte 3
Flags
Dynamic population
  [7] - 0b = static sensor population
        The number of sensors handled by this device is fixed, and a query shall return records for all sensors
        1b = dynamic sensor population
        This device may have its sensor population vary during 'run time'
        (defined as any time other that when an install operation is in progress)
Reserved
[6:4] - reserved
Device LUNs
  [3] - 1b = LUN 3 has sensors
  [2] - 1b = LUN 2 has sensors
  [1] - 1b = LUN 1 has sensors
  [0] - 1b = LUN 0 has sensors
00 00 00 00 Byte [4:7]
Sensor Population Change Indicator
LS byte first
Four byte timestamp, or counter
Updated or incremented each time the sensor population changes
This field is not provided if the flags indicate a static sensor population

send_icmd ret = 0
ipmiutil cmd, completed successfully
[ipmitool in DOS]
C:\> ipmitool 20 10 20
14 20 00 1b 01 00 00 00 00


Get Device SDR - NetFn = Sensor/Event (0x04h), CMD = 0x21h, Privilege Level = Local, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x21 D[1] Byte 1
Reservation ID
LS Byte
Only required for partial reads with a non-zero 'Offset into record' field
Use 0000h for reservation ID otherwise
D[2] Byte 2
Reservation ID
MS Byte
Only required for partial reads with a non-zero 'Offset into record' field
Use 0000h for reservation ID otherwise
D[3] Byte 3
Record ID of record to Get
LS Byte
0000h returns the first record
D[4] Byte 4
Record ID of record to Get
MS Byte
0000h returns the first record
D[5] Byte 5
Offset into record
D[6] Byte 6
Bytes to read
FFh means read entire record

[ipmiutil]
ipmiutil cmd 00 20 10 21 D[1] Byte 1
Reservation ID
LS Byte
Only required for partial reads with a non-zero 'Offset into record' field
Use 0000h for reservation ID otherwise
D[2] Byte 2
Reservation ID
MS Byte
Only required for partial reads with a non-zero 'Offset into record' field
Use 0000h for reservation ID otherwise
D[3] Byte 3
Record ID of record to Get
LS Byte
0000h returns the first record
D[4] Byte 4
Record ID of record to Get
MS Byte
0000h returns the first record
D[5] Byte 5
Offset into record
D[6] Byte 6
Bytes to read
FFh means read entire record

icmd 00 20 10 21 D[1] Byte 1
Reservation ID
LS Byte
Only required for partial reads with a non-zero 'Offset into record' field
Use 0000h for reservation ID otherwise
D[2] Byte 2
Reservation ID
MS Byte
Only required for partial reads with a non-zero 'Offset into record' field
Use 0000h for reservation ID otherwise
D[3] Byte 3
Record ID of record to Get
LS Byte
0000h returns the first record
D[4] Byte 4
Record ID of record to Get
MS Byte
0000h returns the first record
D[5] Byte 5
Offset into record
D[6] Byte 6
Bytes to read
FFh means read entire record

[FreeIPMI]
ipmi-raw 0x00 0x04 0x21 D[1] Byte 1
Reservation ID
LS Byte
Only required for partial reads with a non-zero 'Offset into record' field
Use 0000h for reservation ID otherwise
D[2] Byte 2
Reservation ID
MS Byte
Only required for partial reads with a non-zero 'Offset into record' field
Use 0000h for reservation ID otherwise
D[3] Byte 3
Record ID of record to Get
LS Byte
0000h returns the first record
D[4] Byte 4
Record ID of record to Get
MS Byte
0000h returns the first record
D[5] Byte 5
Offset into record
D[6] Byte 6
Bytes to read
FFh means read entire record

| MS-DOS |
[ipmitool]
ipmitool 20 10 21 Data[1:6]

--Completion Code--
80h = record changed
This status is returned if any of the record contents have been altered since the last time the Requester issued the request with 00h for the 'Offset into SDR' field

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x04 0x21 0x00 0x00 0x00 0x00 0x00 0xff
 02 Byte 2
Record ID for next record
LS Byte
00 Byte 3
Record ID for next record
MS Byte
01 00 51 01 34 20 00 01 03 00 7f 68 01 01
 80 7a 80 7a 3f 3f 80 01 00 00 01 00 00 00 00 00
 07 38 4a 06 7f 80 5a 55 50 00 02 05 00 00 00 00
 00 c9 54 45 4d 50 5f 43 50 55 30
Byte [4:N]
Requested bytes from record

[ipmiutil in Linux]
$ icmd 00 20 10 21 00 00 12 00 00 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
respData[len=58]: 13 Byte 2
Record ID for next record
LS Byte
00 Byte 3
Record ID for next record
MS Byte
12 00 51 01 33 20 00 b3 07 01 7f 68 04 01 95 7a 95 7a 3f 3f 00 12 00 00 01 02 00 02 30 20 00 8c 9f 11 ff 00 ff fe fd 01 02 03 00 00 00 00 00 c8 53 59 53 5f 46 41 4e 33 Byte [4:N]
Requested bytes from record

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x04 0x21 0x00 0x00 0x03 0x00 0x00 0xff
rcvd: 21 00 Byte 1
Completion Code
00h = Command Completed Normally
80h = record changed
04 Byte 2
Record ID for next record
LS Byte
00 Byte 3
Record ID for next record
MS Byte
03 00 51 01 33 20 00 14 03 00 7F 68 01 01 95 7A 95 7A 3F 3F 80 01 00 00 01 02 00 02 30 00 07 38 4A 06 7F 80 50 4E 4B 00 02 05 00 00 00 00 00 C8 54 45 4D 50 5F 42 4D 43 Byte [4:N]
Requested bytes from record

[ipmitool in DOS]
C:\> ipmitool 20 10 21 00 00 00 00 00 ff
14 21 00 02 00 01 00 00 12 18 20 00 00 ff 00 00 00 00 01 00 cd 41 53 54 32 34 30 30 2d 53 31 33 31 31


Reserve Device SDR Repository - NetFn = Sensor/Event (0x04h), CMD = 0x22h, Privilege Level = Local, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x22
[ipmiutil]
ipmiutil cmd 00 20 10 22
icmd 00 20 10 22
[FreeIPMI]
ipmi-raw 0x00 0x04 0x22
| MS-DOS |
[ipmitool]
ipmitool 20 10 22

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x04 0x22
 67 Byte 2
Reservation ID
LS Byte
0000h reserved
45 Byte 3
Reservation ID
MS Byte
0000h reserved

[ipmiutil in Linux]
$ icmd 00 20 10 22
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]: c6 Byte 2
Reservation ID
LS Byte
0000h reserved
23 Byte 3
Reservation ID
MS Byte
0000h reserved

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x04 0x22
rcvd: 22 00 Byte 1
Completion Code
00h = Command Completed Normally
69 Byte 2
Reservation ID
LS Byte
0000h reserved
98 Byte 3
Reservation ID
MS Byte
0000h reserved

[ipmitool in DOS]
C:\> ipmitool 20 10 22
14 22 00 67 45


Get Sensor Reading Factors - NetFn = Sensor/Event (0x04h), CMD = 0x23h, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x23 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
reading byte

[ipmiutil]
ipmiutil cmd 00 20 10 23 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
reading byte

icmd 00 20 10 23 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
reading byte

[FreeIPMI]
ipmi-raw 0x00 0x04 0x23 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
reading byte

| MS-DOS |
[ipmitool]
ipmitool 20 10 23 Data[1:2]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x04 0x23 0x01 0xff
 20 Byte 2
Next reading
This field indicates the next reading for which a different set of sensor reading factors is defined.
If the reading byte passed in the request does not match exactly to a table entry, the nearest entry will be returned, and this field will hold the reading byte value for which an exact table match would have been obtained. Once the 'exact' table byte has been obtained, this field will be returned with a value such that, if the returned value is used as the reading byte for the next request, the process can be repeated to cycle through all the Sensor Reading Factors in the device's internal table.
This process shall 'wrap around' such a complete list of the table values can be obtained starting with any reading byte value.
01 Byte 3
Response Data Byte 3
M: LS 8 bits
00 Byte 4
Response Data Byte 4
[7:6] - M: MS 2 bits
[5:0] - Tolerance in +/- ½ raw counts
00 Byte 5
Response Data Byte 5
[7:0] - B: LS 8 bits
00 Byte 6
Response Data Byte 6
[7:6] - B: MS 2 bits
Unsigned, 10-bit Basic Sensor Accuracy in 1/100 percent scaled up by unsigned Accuracy exponent.
[5:0] - Accuracy: LS 6 bits
00 Byte 7
Response Data Byte 7
[7:4] - Accuracy: MS 4 bits
[3:2] - Accuracy exp: 2 bits, unsigned
[1:0] - reserved: 2 bits, returned as 00b
00 Byte 8
Response Data Byte 8
[7:4] - R (result) exponent 4 bits, signed
[3:0] - B exponent 4 bits, signed

[ipmiutil in Linux]
$ icmd 00 20 10 23 13 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
respData[len=7]: 20 Byte 2
Next reading
This field indicates the next reading for which a different set of sensor reading factors is defined.
If the reading byte passed in the request does not match exactly to a table entry, the nearest entry will be returned, and this field will hold the reading byte value for which an exact table match would have been obtained. Once the 'exact' table byte has been obtained, this field will be returned with a value such that, if the returned value is used as the reading byte for the next request, the process can be repeated to cycle through all the Sensor Reading Factors in the device's internal table.
This process shall 'wrap around' such a complete list of the table values can be obtained starting with any reading byte value.
01 Byte 3
Response Data Byte 3
M: LS 8 bits
02 Byte 4
Response Data Byte 4
[7:6] - M: MS 2 bits
[5:0] - Tolerance in +/- ½ raw counts
00 Byte 5
Response Data Byte 5
[7:0] - B: LS 8 bits
02 Byte 6
Response Data Byte 6
[7:6] - B: MS 2 bits
Unsigned, 10-bit Basic Sensor Accuracy in 1/100 percent scaled up by unsigned Accuracy exponent.
[5:0] - Accuracy: LS 6 bits
30 Byte 7
Response Data Byte 7
[7:4] - Accuracy: MS 4 bits
[3:2] - Accuracy exp: 2 bits, unsigned
[1:0] - reserved: 2 bits, returned as 00b
00 Byte 8
Response Data Byte 8
[7:4] - R (result) exponent 4 bits, signed
[3:0] - B exponent 4 bits, signed

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x04 0x23 0x14 0xff
rcvd: 23 00 Byte 1
Completion Code
00h = Command Completed Normally
20 Byte 2
Next reading
This field indicates the next reading for which a different set of sensor reading factors is defined.
If the reading byte passed in the request does not match exactly to a table entry, the nearest entry will be returned, and this field will hold the reading byte value for which an exact table match would have been obtained. Once the 'exact' table byte has been obtained, this field will be returned with a value such that, if the returned value is used as the reading byte for the next request, the process can be repeated to cycle through all the Sensor Reading Factors in the device's internal table.
This process shall 'wrap around' such a complete list of the table values can be obtained starting with any reading byte value.
01 Byte 3
Response Data Byte 3
M: LS 8 bits
02 Byte 4
Response Data Byte 4
[7:6] - M: MS 2 bits
[5:0] - Tolerance in +/- ½ raw counts
00 Byte 5
Response Data Byte 5
[7:0] - B: LS 8 bits
02 Byte 6
Response Data Byte 6
[7:6] - B: MS 2 bits
Unsigned, 10-bit Basic Sensor Accuracy in 1/100 percent scaled up by unsigned Accuracy exponent.
[5:0] - Accuracy: LS 6 bits
30 Byte 7
Response Data Byte 7
[7:4] - Accuracy: MS 4 bits
[3:2] - Accuracy exp: 2 bits, unsigned
[1:0] - reserved: 2 bits, returned as 00b
00 Byte 8
Response Data Byte 8
[7:4] - R (result) exponent 4 bits, signed
[3:0] - B exponent 4 bits, signed



Set Sensor Hysteresis - NetFn = Sensor/Event (0x04h), CMD = 0x24h, Privilege Level = Operator, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x24 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Request Data Byte 2
reserved for future 'hysteresis mask' definition.
Write as 'FFh'
D[3] Byte 3
Positive-going Threshold Hysteresis Value
Set to 00h if sensor does not support positive-going threshold hysteresis.
This value is subtracted from positive going thresholds to determine the point where the asserted status for that threshold will clear.
D[4] Byte 4
Negative-going Threshold Hysteresis Value
This value is added to negative going thresholds to determine the point where the asserted status for that threshold will clear.
Set to 00h if sensor does not support negative-going threshold hysteresis.

[ipmiutil]
ipmiutil cmd 00 20 10 24 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Request Data Byte 2
reserved for future 'hysteresis mask' definition.
Write as 'FFh'
D[3] Byte 3
Positive-going Threshold Hysteresis Value
Set to 00h if sensor does not support positive-going threshold hysteresis.
This value is subtracted from positive going thresholds to determine the point where the asserted status for that threshold will clear.
D[4] Byte 4
Negative-going Threshold Hysteresis Value
This value is added to negative going thresholds to determine the point where the asserted status for that threshold will clear.
Set to 00h if sensor does not support negative-going threshold hysteresis.

icmd 00 20 10 24 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Request Data Byte 2
reserved for future 'hysteresis mask' definition.
Write as 'FFh'
D[3] Byte 3
Positive-going Threshold Hysteresis Value
Set to 00h if sensor does not support positive-going threshold hysteresis.
This value is subtracted from positive going thresholds to determine the point where the asserted status for that threshold will clear.
D[4] Byte 4
Negative-going Threshold Hysteresis Value
This value is added to negative going thresholds to determine the point where the asserted status for that threshold will clear.
Set to 00h if sensor does not support negative-going threshold hysteresis.

[FreeIPMI]
ipmi-raw 0x00 0x04 0x24 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Request Data Byte 2
reserved for future 'hysteresis mask' definition.
Write as 'FFh'
D[3] Byte 3
Positive-going Threshold Hysteresis Value
Set to 00h if sensor does not support positive-going threshold hysteresis.
This value is subtracted from positive going thresholds to determine the point where the asserted status for that threshold will clear.
D[4] Byte 4
Negative-going Threshold Hysteresis Value
This value is added to negative going thresholds to determine the point where the asserted status for that threshold will clear.
Set to 00h if sensor does not support negative-going threshold hysteresis.

| MS-DOS |
[ipmitool]
ipmitool 20 10 24 Data[1:4]

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

[ipmiutil in Linux]
$ icmd 00 20 10 24 13 ff 28 10
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 0x24 0x14 0xff 0x12 0x03
rcvd: 24 00 Byte 1
Completion Code
00h = Command Completed Normally



Get Sensor Hysteresis - NetFn = Sensor/Event (0x04h), CMD = 0x25h, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x25 D[1] Byte 1
Request Data Byte 1
sensor number (FFh = reserved)
D[2] Byte 2
Request Data Byte 2
reserved for future 'hysteresis mask' definition.
Write as 'FFh'

[ipmiutil]
ipmiutil cmd 00 20 10 25 D[1] Byte 1
Request Data Byte 1
sensor number (FFh = reserved)
D[2] Byte 2
Request Data Byte 2
reserved for future 'hysteresis mask' definition.
Write as 'FFh'

icmd 00 20 10 25 D[1] Byte 1
Request Data Byte 1
sensor number (FFh = reserved)
D[2] Byte 2
Request Data Byte 2
reserved for future 'hysteresis mask' definition.
Write as 'FFh'

[FreeIPMI]
ipmi-raw 0x00 0x04 0x25 D[1] Byte 1
Request Data Byte 1
sensor number (FFh = reserved)
D[2] Byte 2
Request Data Byte 2
reserved for future 'hysteresis mask' definition.
Write as 'FFh'

| MS-DOS |
[ipmitool]
ipmitool 20 10 25 Data[1:2]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x04 0x25 0x01 0xff
 00 Byte 2
Positive-going Threshold Hysteresis Value
00h if n/a.
00 Byte 3
Negative-going Threshold Hysteresis Value
00h if n/a.

[ipmiutil in Linux]
$ icmd 00 20 10 25 13 0xff
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]: 28 Byte 2
Positive-going Threshold Hysteresis Value
00h if n/a.
10 Byte 3
Negative-going Threshold Hysteresis Value
00h if n/a.

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x04 0x25 0x14 0xff
rcvd: 25 00 Byte 1
Completion Code
00h = Command Completed Normally
12 Byte 2
Positive-going Threshold Hysteresis Value
00h if n/a.
03 Byte 3
Negative-going Threshold Hysteresis Value
00h if n/a.



Set Sensor Thresholds - NetFn = Sensor/Event (0x04h), CMD = 0x26h, Privilege Level = Operator, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x26 D[1] Byte 1
Request Data Byte 1
sensor number (FFh = reserved)
D[2] Byte 2
Request Data Byte 2
[7:6] - reserved. Write as 00b.
  [5] - 1b = set upper non-recoverable threshold
  [4] - 1b = set upper critical threshold
  [3] - 1b = set upper non-critical threshold
  [2] - 1b = set lower non-recoverable threshold
  [1] - 1b = set lower critical threshold
  [0] - 1b = set lower non-critical threshold
D[3] Byte 3
lower non-critical threshold
Ignored if bit 0 of byte 2 = 0
D[4] Byte 4
lower non-critical threshold
Ignored if bit 0 of byte 2 = 0
D[5] Byte 5
lower non-recoverable threshold
Ignored if bit 2 of byte 2 = 0
D[6] Byte 6
upper non-critical threshold
Ignored if bit 3 of byte 2 = 0
D[7] Byte 7
upper critical threshold value
Ignored if bit 4 of byte 2 = 0
D[8] Byte 8
upper non-recoverable threshold value
Ignored if bit 5 of byte 2 = 0

ipmitool sensor thresh <id> <threshold> <setting>
ipmitool sensor thresh <id> lower <lnr> <lcr> <lnc>
ipmitool sensor thresh <id> upper <unc> <ucr> <unr>
[ipmiutil]
ipmiutil cmd 00 20 10 26 D[1] Byte 1
Request Data Byte 1
sensor number (FFh = reserved)
D[2] Byte 2
Request Data Byte 2
[7:6] - reserved. Write as 00b.
  [5] - 1b = set upper non-recoverable threshold
  [4] - 1b = set upper critical threshold
  [3] - 1b = set upper non-critical threshold
  [2] - 1b = set lower non-recoverable threshold
  [1] - 1b = set lower critical threshold
  [0] - 1b = set lower non-critical threshold
D[3] Byte 3
lower non-critical threshold
Ignored if bit 0 of byte 2 = 0
D[4] Byte 4
lower non-critical threshold
Ignored if bit 0 of byte 2 = 0
D[5] Byte 5
lower non-recoverable threshold
Ignored if bit 2 of byte 2 = 0
D[6] Byte 6
upper non-critical threshold
Ignored if bit 3 of byte 2 = 0
D[7] Byte 7
upper critical threshold value
Ignored if bit 4 of byte 2 = 0
D[8] Byte 8
upper non-recoverable threshold value
Ignored if bit 5 of byte 2 = 0

icmd 00 20 10 26 D[1] Byte 1
Request Data Byte 1
sensor number (FFh = reserved)
D[2] Byte 2
Request Data Byte 2
[7:6] - reserved. Write as 00b.
  [5] - 1b = set upper non-recoverable threshold
  [4] - 1b = set upper critical threshold
  [3] - 1b = set upper non-critical threshold
  [2] - 1b = set lower non-recoverable threshold
  [1] - 1b = set lower critical threshold
  [0] - 1b = set lower non-critical threshold
D[3] Byte 3
lower non-critical threshold
Ignored if bit 0 of byte 2 = 0
D[4] Byte 4
lower non-critical threshold
Ignored if bit 0 of byte 2 = 0
D[5] Byte 5
lower non-recoverable threshold
Ignored if bit 2 of byte 2 = 0
D[6] Byte 6
upper non-critical threshold
Ignored if bit 3 of byte 2 = 0
D[7] Byte 7
upper critical threshold value
Ignored if bit 4 of byte 2 = 0
D[8] Byte 8
upper non-recoverable threshold value
Ignored if bit 5 of byte 2 = 0

[FreeIPMI]
ipmi-raw 0x00 0x04 0x26 D[1] Byte 1
Request Data Byte 1
sensor number (FFh = reserved)
D[2] Byte 2
Request Data Byte 2
[7:6] - reserved. Write as 00b.
  [5] - 1b = set upper non-recoverable threshold
  [4] - 1b = set upper critical threshold
  [3] - 1b = set upper non-critical threshold
  [2] - 1b = set lower non-recoverable threshold
  [1] - 1b = set lower critical threshold
  [0] - 1b = set lower non-critical threshold
D[3] Byte 3
lower non-critical threshold
Ignored if bit 0 of byte 2 = 0
D[4] Byte 4
lower non-critical threshold
Ignored if bit 0 of byte 2 = 0
D[5] Byte 5
lower non-recoverable threshold
Ignored if bit 2 of byte 2 = 0
D[6] Byte 6
upper non-critical threshold
Ignored if bit 3 of byte 2 = 0
D[7] Byte 7
upper critical threshold value
Ignored if bit 4 of byte 2 = 0
D[8] Byte 8
upper non-recoverable threshold value
Ignored if bit 5 of byte 2 = 0

| MS-DOS |
[ipmitool]
ipmitool 20 10 26 Data[1:8]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x04 0x26 0x01 0x3f 0x6d 0x6a 0x55 0x6e 0x73 0x78

$ ipmitool sensor thresh TEMP_CPU0 unr 125
Locating sensor record 'TEMP_CPU0'...
Setting sensor "TEMP_CPU0" Upper Non-Recoverable threshold to 125.000
$ ipmitool sensor thresh TEMP_CPU0 upper 70 80 90
Locating sensor record 'TEMP_CPU0'...
Setting sensor "TEMP_CPU0" Upper Non-Critical threshold to 70.000
Setting sensor "TEMP_CPU0" Upper Critical threshold to 80.000
Setting sensor "TEMP_CPU0" Upper Non-Recoverable threshold to 90.000
[ipmiutil in Linux]
$ icmd 00 20 10 26 13 3f 6d 6a 55 6e 76 77
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 0x26 0x14 0x33 0x44 0x55 0x66 0x77 0x88 0x99
rcvd: 26 00 Byte 1
Completion Code
00h = Command Completed Normally

[ipmitool in DOS]
C:\> ipmitool 20 10 26 06 3f 6d 6a 55 6e 73 78


Get Sensor Thresholds - NetFn = Sensor/Event (0x04h), CMD = 0x27h, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x27 D[1] Byte 1
Request Data Byte 1
sensor number (FFh = reserved)

[ipmiutil]
ipmiutil cmd 00 20 10 27 D[1] Byte 1
Request Data Byte 1
sensor number (FFh = reserved)

icmd 00 20 10 27 D[1] Byte 1
Request Data Byte 1
sensor number (FFh = reserved)

[FreeIPMI]
ipmi-raw 0x00 0x04 0x27 D[1] Byte 1
Request Data Byte 1
sensor number (FFh = reserved)

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

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x04 0x27 0x01
 3f Byte 2
Response Data Byte 2
[7:6] - reserved. Return as 00b.
Readable thresholds: This bit mask indicates which thresholds are readable.
  [5] - 1b = upper non-recoverable threshold
  [4] - 1b = upper critical threshold
  [3] - 1b = upper non-critical threshold
  [2] - 1b = lower non-recoverable threshold
  [1] - 1b = lower critical threshold
  [0] - 1b = lower non-critical threshold
6d Byte 3
lower non-critical threshold
(if present, ignore on read otherwise)
6a Byte 4
lower critical threshold
(if present, ignore on read otherwise)
55 Byte 5
lower non-recoverable threshold
(if present, ignore on read otherwise
46 Byte 6
upper non-critical threshold
(if present, ignore on read otherwise
50 Byte 7
upper critical
(if present, ignore on read otherwise)
5a Byte 8
upper non-recoverable
(if present, ignore on read otherwise)

[ipmiutil in Linux]
$ icmd 00 20 10 27 13
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=7]: 3f Byte 2
Response Data Byte 2
[7:6] - reserved. Return as 00b.
Readable thresholds: This bit mask indicates which thresholds are readable.
  [5] - 1b = upper non-recoverable threshold
  [4] - 1b = upper critical threshold
  [3] - 1b = upper non-critical threshold
  [2] - 1b = lower non-recoverable threshold
  [1] - 1b = lower critical threshold
  [0] - 1b = lower non-critical threshold
05 Byte 3
lower non-critical threshold
(if present, ignore on read otherwise)
02 Byte 4
lower critical threshold
(if present, ignore on read otherwise)
00 Byte 5
lower non-recoverable threshold
(if present, ignore on read otherwise
4b Byte 6
upper non-critical threshold
(if present, ignore on read otherwise
4e Byte 7
upper critical
(if present, ignore on read otherwise)
50 Byte 8
upper non-recoverable
(if present, ignore on read otherwise)

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x04 0x27 0x14
rcvd: 27 00 Byte 1
Completion Code
00h = Command Completed Normally
3F Byte 2
Response Data Byte 2
[7:6] - reserved. Return as 00b.
Readable thresholds: This bit mask indicates which thresholds are readable.
  [5] - 1b = upper non-recoverable threshold
  [4] - 1b = upper critical threshold
  [3] - 1b = upper non-critical threshold
  [2] - 1b = lower non-recoverable threshold
  [1] - 1b = lower critical threshold
  [0] - 1b = lower non-critical threshold
05 Byte 3
lower non-critical threshold
(if present, ignore on read otherwise)
02 Byte 4
lower critical threshold
(if present, ignore on read otherwise)
00 Byte 5
lower non-recoverable threshold
(if present, ignore on read otherwise
4B Byte 6
upper non-critical threshold
(if present, ignore on read otherwise
4E Byte 7
upper critical
(if present, ignore on read otherwise)
50 Byte 8
upper non-recoverable
(if present, ignore on read otherwise)

[ipmitool in DOS]
C:\>ipmitool


Set Sensor Event Enable - NetFn = Sensor/Event (0x04h), CMD = 0x28h, Privilege Level = Operator, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x28 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Request Data Byte 2
  [7] - 0b = disable all Event Messages from this sensor (optional)
        [does not impact individual enable/disable status]
  [6] - 0b = disable scanning on this sensor (optional)
[5:4] - 00b = do not change individual enables
        01b = enable selected event messages
        10b = disable selected event messages
        11b = reserved
[3:0] - reserved
(D[3]) (Byte 3)
Request Data Byte 3
For sensors with threshold based events:
[7] - 1b = select assertion event for upper non-critical going high
[6] - 1b = select assertion event for upper non-critical going low
[5] - 1b = select assertion event for lower non-recoverable going high
[4] - 1b = select assertion event for lower non-recoverable going low
[3] - 1b = select assertion event for lower critical going high
[2] - 1b = select assertion event for lower critical going low
[1] - 1b = select assertion event for lower non-critical going high
[0] - 1b = select assertion event for lower non-critical going low
For sensors with discrete events:
[7] - 1b = select assertion event for state bit 7
[6] - 1b = select assertion event for state bit 6
[5] - 1b = select assertion event for state bit 5
[4] - 1b = select assertion event for state bit 4
[3] - 1b = select assertion event for state bit 3
[2] - 1b = select assertion event for state bit 2
[1] - 1b = select assertion event for state bit 1
[0] - 1b = select assertion event for state bit 0
(D[4]) (Byte 4)
Request Data Byte 4
For sensors with threshold based events:
[7] - 1b = select assertion event for upper non-critical going high
[6] - 1b = select assertion event for upper non-critical going
[5] - 1b = select assertion event for lower non-recoverable going high
[4] - 1b = select assertion event for lower non-recoverable going low
[3] - 1b = select assertion event for lower critical going high
[2] - 1b = select assertion event for lower critical going low
[1] - 1b = select assertion event for lower non-critical going high
[0] - 1b = select assertion event for lower non-critical going low
For sensors with discrete events:
[7] - 1b = select assertion event for state bit 7
[6] - 1b = select assertion event for state bit 6
[5] - 1b = select assertion event for state bit 5
[4] - 1b = select assertion event for state bit 4
[3] - 1b = select assertion event for state bit 3
[2] - 1b = select assertion event for state bit 2
[1] - 1b = select assertion event for state bit 1
[0] - 1b = select assertion event for state bit 0
(D[5]) (Byte 5)
Request Data Byte 1
For sensors with threshold based events:
[7] - 1b = select deassertion event for upper non-critical going high
[6] - 1b = select deassertion event for upper non-critical going low
[5] - 1b = select deassertion event for lower non-recoverable going high
[4] - 1b = select deassertion event for lower non-recoverable going low
[3] - 1b = select deassertion event for lower critical going high
[2] - 1b = select deassertion event for lower critical going low
[1] - 1b = select deassertion event for lower non-critical going high
[0] - 1b = select deassertion event for lower non-critical going low
For sensors with discrete events:
(00h otherwise)
[7] - 1b = select deassertion event for state bit 7
[6] - 1b = select deassertion event for state bit 6
[5] - 1b = select deassertion event for state bit 5
[4] - 1b = select deassertion event for state bit 4
[3] - 1b = select deassertion event for state bit 3
[2] - 1b = select deassertion event for state bit 2
[1] - 1b = select deassertion event for state bit 1
[0] - 1b = select deassertion event for state bit 0
(D[6]) (Byte 6)
Request Data Byte 2
For sensors with threshold based events:
[7] - 1b = select deassertion event for upper non-critical going high
[6] - 1b = select deassertion event for upper non-critical going low
[5] - 1b = select deassertion event for lower non-recoverable going high
[4] - 1b = select deassertion event for lower non-recoverable going low
[3] - 1b = select deassertion event for lower critical going high
[2] - 1b = select deassertion event for lower critical going low
[1] - 1b = select deassertion event for lower non-critical going high
[0] - 1b = select deassertion event for lower non-critical going low
For sensors with discrete events:
(00h otherwise)
[7] - 1b = select deassertion event for state bit 7
[6] - 1b = select deassertion event for state bit 6
[5] - 1b = select deassertion event for state bit 5
[4] - 1b = select deassertion event for state bit 4
[3] - 1b = select deassertion event for state bit 3
[2] - 1b = select deassertion event for state bit 2
[1] - 1b = select deassertion event for state bit 1
[0] - 1b = select deassertion event for state bit 0

[ipmiutil]
ipmiutil cmd 00 20 10 28 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Request Data Byte 2
  [7] - 0b = disable all Event Messages from this sensor (optional)
        [does not impact individual enable/disable status]
  [6] - 0b = disable scanning on this sensor (optional)
[5:4] - 00b = do not change individual enables
        01b = enable selected event messages
        10b = disable selected event messages
        11b = reserved
[3:0] - reserved
(D[3]) (Byte 3)
Request Data Byte 3
For sensors with threshold based events:
[7] - 1b = select assertion event for upper non-critical going high
[6] - 1b = select assertion event for upper non-critical going low
[5] - 1b = select assertion event for lower non-recoverable going high
[4] - 1b = select assertion event for lower non-recoverable going low
[3] - 1b = select assertion event for lower critical going high
[2] - 1b = select assertion event for lower critical going low
[1] - 1b = select assertion event for lower non-critical going high
[0] - 1b = select assertion event for lower non-critical going low
For sensors with discrete events:
[7] - 1b = select assertion event for state bit 7
[6] - 1b = select assertion event for state bit 6
[5] - 1b = select assertion event for state bit 5
[4] - 1b = select assertion event for state bit 4
[3] - 1b = select assertion event for state bit 3
[2] - 1b = select assertion event for state bit 2
[1] - 1b = select assertion event for state bit 1
[0] - 1b = select assertion event for state bit 0
(D[4]) (Byte 4)
Request Data Byte 4
For sensors with threshold based events:
[7] - 1b = select assertion event for upper non-critical going high
[6] - 1b = select assertion event for upper non-critical going
[5] - 1b = select assertion event for lower non-recoverable going high
[4] - 1b = select assertion event for lower non-recoverable going low
[3] - 1b = select assertion event for lower critical going high
[2] - 1b = select assertion event for lower critical going low
[1] - 1b = select assertion event for lower non-critical going high
[0] - 1b = select assertion event for lower non-critical going low
For sensors with discrete events:
[7] - 1b = select assertion event for state bit 7
[6] - 1b = select assertion event for state bit 6
[5] - 1b = select assertion event for state bit 5
[4] - 1b = select assertion event for state bit 4
[3] - 1b = select assertion event for state bit 3
[2] - 1b = select assertion event for state bit 2
[1] - 1b = select assertion event for state bit 1
[0] - 1b = select assertion event for state bit 0
(D[5]) (Byte 5)
Request Data Byte 1
For sensors with threshold based events:
[7] - 1b = select deassertion event for upper non-critical going high
[6] - 1b = select deassertion event for upper non-critical going low
[5] - 1b = select deassertion event for lower non-recoverable going high
[4] - 1b = select deassertion event for lower non-recoverable going low
[3] - 1b = select deassertion event for lower critical going high
[2] - 1b = select deassertion event for lower critical going low
[1] - 1b = select deassertion event for lower non-critical going high
[0] - 1b = select deassertion event for lower non-critical going low
For sensors with discrete events:
(00h otherwise)
[7] - 1b = select deassertion event for state bit 7
[6] - 1b = select deassertion event for state bit 6
[5] - 1b = select deassertion event for state bit 5
[4] - 1b = select deassertion event for state bit 4
[3] - 1b = select deassertion event for state bit 3
[2] - 1b = select deassertion event for state bit 2
[1] - 1b = select deassertion event for state bit 1
[0] - 1b = select deassertion event for state bit 0
(D[6]) (Byte 6)
Request Data Byte 2
For sensors with threshold based events:
[7] - 1b = select deassertion event for upper non-critical going high
[6] - 1b = select deassertion event for upper non-critical going low
[5] - 1b = select deassertion event for lower non-recoverable going high
[4] - 1b = select deassertion event for lower non-recoverable going low
[3] - 1b = select deassertion event for lower critical going high
[2] - 1b = select deassertion event for lower critical going low
[1] - 1b = select deassertion event for lower non-critical going high
[0] - 1b = select deassertion event for lower non-critical going low
For sensors with discrete events:
(00h otherwise)
[7] - 1b = select deassertion event for state bit 7
[6] - 1b = select deassertion event for state bit 6
[5] - 1b = select deassertion event for state bit 5
[4] - 1b = select deassertion event for state bit 4
[3] - 1b = select deassertion event for state bit 3
[2] - 1b = select deassertion event for state bit 2
[1] - 1b = select deassertion event for state bit 1
[0] - 1b = select deassertion event for state bit 0

icmd 00 20 10 28 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Request Data Byte 2
  [7] - 0b = disable all Event Messages from this sensor (optional)
        [does not impact individual enable/disable status]
  [6] - 0b = disable scanning on this sensor (optional)
[5:4] - 00b = do not change individual enables
        01b = enable selected event messages
        10b = disable selected event messages
        11b = reserved
[3:0] - reserved
(D[3]) (Byte 3)
Request Data Byte 3
For sensors with threshold based events:
[7] - 1b = select assertion event for upper non-critical going high
[6] - 1b = select assertion event for upper non-critical going low
[5] - 1b = select assertion event for lower non-recoverable going high
[4] - 1b = select assertion event for lower non-recoverable going low
[3] - 1b = select assertion event for lower critical going high
[2] - 1b = select assertion event for lower critical going low
[1] - 1b = select assertion event for lower non-critical going high
[0] - 1b = select assertion event for lower non-critical going low
For sensors with discrete events:
[7] - 1b = select assertion event for state bit 7
[6] - 1b = select assertion event for state bit 6
[5] - 1b = select assertion event for state bit 5
[4] - 1b = select assertion event for state bit 4
[3] - 1b = select assertion event for state bit 3
[2] - 1b = select assertion event for state bit 2
[1] - 1b = select assertion event for state bit 1
[0] - 1b = select assertion event for state bit 0
(D[4]) (Byte 4)
Request Data Byte 4
For sensors with threshold based events:
[7] - 1b = select assertion event for upper non-critical going high
[6] - 1b = select assertion event for upper non-critical going
[5] - 1b = select assertion event for lower non-recoverable going high
[4] - 1b = select assertion event for lower non-recoverable going low
[3] - 1b = select assertion event for lower critical going high
[2] - 1b = select assertion event for lower critical going low
[1] - 1b = select assertion event for lower non-critical going high
[0] - 1b = select assertion event for lower non-critical going low
For sensors with discrete events:
[7] - 1b = select assertion event for state bit 7
[6] - 1b = select assertion event for state bit 6
[5] - 1b = select assertion event for state bit 5
[4] - 1b = select assertion event for state bit 4
[3] - 1b = select assertion event for state bit 3
[2] - 1b = select assertion event for state bit 2
[1] - 1b = select assertion event for state bit 1
[0] - 1b = select assertion event for state bit 0
(D[5]) (Byte 5)
Request Data Byte 1
For sensors with threshold based events:
[7] - 1b = select deassertion event for upper non-critical going high
[6] - 1b = select deassertion event for upper non-critical going low
[5] - 1b = select deassertion event for lower non-recoverable going high
[4] - 1b = select deassertion event for lower non-recoverable going low
[3] - 1b = select deassertion event for lower critical going high
[2] - 1b = select deassertion event for lower critical going low
[1] - 1b = select deassertion event for lower non-critical going high
[0] - 1b = select deassertion event for lower non-critical going low
For sensors with discrete events:
(00h otherwise)
[7] - 1b = select deassertion event for state bit 7
[6] - 1b = select deassertion event for state bit 6
[5] - 1b = select deassertion event for state bit 5
[4] - 1b = select deassertion event for state bit 4
[3] - 1b = select deassertion event for state bit 3
[2] - 1b = select deassertion event for state bit 2
[1] - 1b = select deassertion event for state bit 1
[0] - 1b = select deassertion event for state bit 0
(D[6]) (Byte 6)
Request Data Byte 2
For sensors with threshold based events:
[7] - 1b = select deassertion event for upper non-critical going high
[6] - 1b = select deassertion event for upper non-critical going low
[5] - 1b = select deassertion event for lower non-recoverable going high
[4] - 1b = select deassertion event for lower non-recoverable going low
[3] - 1b = select deassertion event for lower critical going high
[2] - 1b = select deassertion event for lower critical going low
[1] - 1b = select deassertion event for lower non-critical going high
[0] - 1b = select deassertion event for lower non-critical going low
For sensors with discrete events:
(00h otherwise)
[7] - 1b = select deassertion event for state bit 7
[6] - 1b = select deassertion event for state bit 6
[5] - 1b = select deassertion event for state bit 5
[4] - 1b = select deassertion event for state bit 4
[3] - 1b = select deassertion event for state bit 3
[2] - 1b = select deassertion event for state bit 2
[1] - 1b = select deassertion event for state bit 1
[0] - 1b = select deassertion event for state bit 0

[FreeIPMI]
ipmi-raw 0x00 0x04 0x28 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Request Data Byte 2
  [7] - 0b = disable all Event Messages from this sensor (optional)
        [does not impact individual enable/disable status]
  [6] - 0b = disable scanning on this sensor (optional)
[5:4] - 00b = do not change individual enables
        01b = enable selected event messages
        10b = disable selected event messages
        11b = reserved
[3:0] - reserved
(D[3]) (Byte 3)
Request Data Byte 3
For sensors with threshold based events:
[7] - 1b = select assertion event for upper non-critical going high
[6] - 1b = select assertion event for upper non-critical going low
[5] - 1b = select assertion event for lower non-recoverable going high
[4] - 1b = select assertion event for lower non-recoverable going low
[3] - 1b = select assertion event for lower critical going high
[2] - 1b = select assertion event for lower critical going low
[1] - 1b = select assertion event for lower non-critical going high
[0] - 1b = select assertion event for lower non-critical going low
For sensors with discrete events:
[7] - 1b = select assertion event for state bit 7
[6] - 1b = select assertion event for state bit 6
[5] - 1b = select assertion event for state bit 5
[4] - 1b = select assertion event for state bit 4
[3] - 1b = select assertion event for state bit 3
[2] - 1b = select assertion event for state bit 2
[1] - 1b = select assertion event for state bit 1
[0] - 1b = select assertion event for state bit 0
(D[4]) (Byte 4)
Request Data Byte 4
For sensors with threshold based events:
[7] - 1b = select assertion event for upper non-critical going high
[6] - 1b = select assertion event for upper non-critical going
[5] - 1b = select assertion event for lower non-recoverable going high
[4] - 1b = select assertion event for lower non-recoverable going low
[3] - 1b = select assertion event for lower critical going high
[2] - 1b = select assertion event for lower critical going low
[1] - 1b = select assertion event for lower non-critical going high
[0] - 1b = select assertion event for lower non-critical going low
For sensors with discrete events:
[7] - 1b = select assertion event for state bit 7
[6] - 1b = select assertion event for state bit 6
[5] - 1b = select assertion event for state bit 5
[4] - 1b = select assertion event for state bit 4
[3] - 1b = select assertion event for state bit 3
[2] - 1b = select assertion event for state bit 2
[1] - 1b = select assertion event for state bit 1
[0] - 1b = select assertion event for state bit 0
(D[5]) (Byte 5)
Request Data Byte 1
For sensors with threshold based events:
[7] - 1b = select deassertion event for upper non-critical going high
[6] - 1b = select deassertion event for upper non-critical going low
[5] - 1b = select deassertion event for lower non-recoverable going high
[4] - 1b = select deassertion event for lower non-recoverable going low
[3] - 1b = select deassertion event for lower critical going high
[2] - 1b = select deassertion event for lower critical going low
[1] - 1b = select deassertion event for lower non-critical going high
[0] - 1b = select deassertion event for lower non-critical going low
For sensors with discrete events:
(00h otherwise)
[7] - 1b = select deassertion event for state bit 7
[6] - 1b = select deassertion event for state bit 6
[5] - 1b = select deassertion event for state bit 5
[4] - 1b = select deassertion event for state bit 4
[3] - 1b = select deassertion event for state bit 3
[2] - 1b = select deassertion event for state bit 2
[1] - 1b = select deassertion event for state bit 1
[0] - 1b = select deassertion event for state bit 0
(D[6]) (Byte 6)
Request Data Byte 2
For sensors with threshold based events:
[7] - 1b = select deassertion event for upper non-critical going high
[6] - 1b = select deassertion event for upper non-critical going low
[5] - 1b = select deassertion event for lower non-recoverable going high
[4] - 1b = select deassertion event for lower non-recoverable going low
[3] - 1b = select deassertion event for lower critical going high
[2] - 1b = select deassertion event for lower critical going low
[1] - 1b = select deassertion event for lower non-critical going high
[0] - 1b = select deassertion event for lower non-critical going low
For sensors with discrete events:
(00h otherwise)
[7] - 1b = select deassertion event for state bit 7
[6] - 1b = select deassertion event for state bit 6
[5] - 1b = select deassertion event for state bit 5
[4] - 1b = select deassertion event for state bit 4
[3] - 1b = select deassertion event for state bit 3
[2] - 1b = select deassertion event for state bit 2
[1] - 1b = select deassertion event for state bit 1
[0] - 1b = select deassertion event for state bit 0

| MS-DOS |
[ipmitool]
ipmitool 20 10 28 Data[1:2] (Data(3:6))

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x04 0x28 0x01 0xc0 0x95 0x0a 0x95 0x0a

[ipmiutil in Linux]
$ icmd 00 20 10 28 13 c0 3b 05 3b 05
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 0x28 0x13 0xc0 0x95 0x0a 0x95 0x0a
rcvd: 28 00 Byte 1
Completion Code
00h = Command Completed Normally



Get Sensor Event Enable - NetFn = Sensor/Event (0x04h), CMD = 0x29h, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x29 D[1] Byte 1
sensor number
(FFh = reserved)

[ipmiutil]
ipmiutil cmd 00 20 10 29 D[1] Byte 1
sensor number
(FFh = reserved)

icmd 00 20 10 29 D[1] Byte 1
sensor number
(FFh = reserved)

[FreeIPMI]
ipmi-raw 0x00 0x04 0x29 D[1] Byte 1
sensor number
(FFh = reserved)

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

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x04 0x29 0x01
c0 Byte 2
Response Data Byte 2
  [7] - 0b = All Event Messages disabled from this sensor
  [6] - 0b = Sensor scanning disabled
[5:0] - reserved. Ignore on read.
80 (Byte 3)
Response Data Byte 3
For sensors with threshold based events:
[7] - 1b = assertion event for upper non-critical going high enabled
[6] - 1b = assertion event for upper non-critical going low enabled
[5] - 1b = assertion event for lower non-recoverable going high enabled
[4] - 1b = assertion event for lower non-recoverable going low enabled
[3] - 1b = assertion event for lower critical going high enabled
[2] - 1b = assertion event for lower critical going low enabled
[1] - 1b = assertion event for lower non-critical going high enabled
[0] - 1b = assertion event for lower non-critical going low enabled
For sensors with discrete events:
[7] - 1b = assertion event msg. for state bit 7 enabled
[6] - 1b = assertion event msg. for state bit 6 enabled
[5] - 1b = assertion event msg. for state bit 5 enabled
[4] - 1b = assertion event msg. for state bit 4 enabled
[3] - 1b = assertion event msg. for state bit 3 enabled
[2] - 1b = assertion event msg. for state bit 2 enabled
[1] - 1b = assertion event msg. for state bit 1 enabled
[0] - 1b = assertion event msg. for state bit 0 enabled
0a (Byte 4)
Response Data Byte 4
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = assertion event for upper non-recoverable going high enabled
[2] - 1b = assertion event for upper non-recoverable going low enabled
[1] - 1b = assertion event for upper critical going high enabled
[0] - 1b = assertion event for upper critical going low enabled
For sensors with discrete events:
(00h otherwise)
[7] - reserved.
[6] - 1b = assertion event msg. for state bit 14 enabled
[5] - 1b = assertion event msg. for state bit 13 enabled
[4] - 1b = assertion event msg. for state bit 12 enabled
[3] - 1b = assertion event msg. for state bit 11 enabled
[2] - 1b = assertion event msg. for state bit 10 enabled
[1] - 1b = assertion event msg. for state bit 9 enabled
[0] - 1b = assertion event msg. for state bit 8 enabled
80 (Byte 5)
Response Data Byte 5
For sensors with threshold based events:
[7] - 1b = deassertion event for upper non-critical going high enabled
[6] - 1b = deassertion event for upper non-critical going low enabled
[5] - 1b = deassertion event for lower non-recoverable going high enabled
[4] - 1b = deassertion event for lower non-recoverable going low enabled
[3] - 1b = deassertion event for lower critical going high enabled
[2] - 1b = deassertion event for lower critical going low enabled
[1] - 1b = deassertion event for lower non-critical going high enabled
[0] - 1b = deassertion event for lower non-critical going low enabled
For sensors with discrete events:
[7] - 1b = deassertion event msg. for state bit 7 enabled
[6] - 1b = deassertion event msg. for state bit 6 enabled
[5] - 1b = deassertion event msg. for state bit 5 enabled
[4] - 1b = deassertion event msg. for state bit 4 enabled
[3] - 1b = deassertion event msg. for state bit 3 enabled
[2] - 1b = deassertion event msg. for state bit 2 enabled
[1] - 1b = deassertion event msg. for state bit 1 enabled
[0] - 1b = deassertion event msg. for state bit 0 enabled
0a (Byte 6)
Response Data Byte 6
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = deassertion event for upper non-recoverable going high enabled
[2] - 1b = deassertion event for upper non-recoverable going low enabled
[1] - 1b = deassertion event for upper critical going high enabled
[0] - 1b = deassertion event for upper critical going low enabled
For sensors with discrete events:
(00h otherwise)
[7] - reserved.
[6] - 1b = deassertion event msg. for state bit 14 enabled
[5] - 1b = deassertion event msg. for state bit 13 enabled
[4] - 1b = deassertion event msg. for state bit 12 enabled
[3] - 1b = deassertion event msg. for state bit 11 enabled
[2] - 1b = deassertion event msg. for state bit 10 enabled
[1] - 1b = deassertion event msg. for state bit 9 enabled
[0] - 1b = deassertion event msg. for state bit 8 enabled

[ipmiutil in Linux]
$ icmd 00 20 10 29 13
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=5]: c0 Byte 2
Response Data Byte 2
  [7] - 0b = All Event Messages disabled from this sensor
  [6] - 0b = Sensor scanning disabled
[5:0] - reserved. Ignore on read.
95 (Byte 3)
Response Data Byte 3
For sensors with threshold based events:
[7] - 1b = assertion event for upper non-critical going high enabled
[6] - 1b = assertion event for upper non-critical going low enabled
[5] - 1b = assertion event for lower non-recoverable going high enabled
[4] - 1b = assertion event for lower non-recoverable going low enabled
[3] - 1b = assertion event for lower critical going high enabled
[2] - 1b = assertion event for lower critical going low enabled
[1] - 1b = assertion event for lower non-critical going high enabled
[0] - 1b = assertion event for lower non-critical going low enabled
For sensors with discrete events:
[7] - 1b = assertion event msg. for state bit 7 enabled
[6] - 1b = assertion event msg. for state bit 6 enabled
[5] - 1b = assertion event msg. for state bit 5 enabled
[4] - 1b = assertion event msg. for state bit 4 enabled
[3] - 1b = assertion event msg. for state bit 3 enabled
[2] - 1b = assertion event msg. for state bit 2 enabled
[1] - 1b = assertion event msg. for state bit 1 enabled
[0] - 1b = assertion event msg. for state bit 0 enabled
0a (Byte 4)
Response Data Byte 4
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = assertion event for upper non-recoverable going high enabled
[2] - 1b = assertion event for upper non-recoverable going low enabled
[1] - 1b = assertion event for upper critical going high enabled
[0] - 1b = assertion event for upper critical going low enabled
For sensors with discrete events:
(00h otherwise)
[7] - reserved.
[6] - 1b = assertion event msg. for state bit 14 enabled
[5] - 1b = assertion event msg. for state bit 13 enabled
[4] - 1b = assertion event msg. for state bit 12 enabled
[3] - 1b = assertion event msg. for state bit 11 enabled
[2] - 1b = assertion event msg. for state bit 10 enabled
[1] - 1b = assertion event msg. for state bit 9 enabled
[0] - 1b = assertion event msg. for state bit 8 enabled
95 (Byte 5)
Response Data Byte 5
For sensors with threshold based events:
[7] - 1b = deassertion event for upper non-critical going high enabled
[6] - 1b = deassertion event for upper non-critical going low enabled
[5] - 1b = deassertion event for lower non-recoverable going high enabled
[4] - 1b = deassertion event for lower non-recoverable going low enabled
[3] - 1b = deassertion event for lower critical going high enabled
[2] - 1b = deassertion event for lower critical going low enabled
[1] - 1b = deassertion event for lower non-critical going high enabled
[0] - 1b = deassertion event for lower non-critical going low enabled
For sensors with discrete events:
[7] - 1b = deassertion event msg. for state bit 7 enabled
[6] - 1b = deassertion event msg. for state bit 6 enabled
[5] - 1b = deassertion event msg. for state bit 5 enabled
[4] - 1b = deassertion event msg. for state bit 4 enabled
[3] - 1b = deassertion event msg. for state bit 3 enabled
[2] - 1b = deassertion event msg. for state bit 2 enabled
[1] - 1b = deassertion event msg. for state bit 1 enabled
[0] - 1b = deassertion event msg. for state bit 0 enabled
0a (Byte 6)
Response Data Byte 6
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = deassertion event for upper non-recoverable going high enabled
[2] - 1b = deassertion event for upper non-recoverable going low enabled
[1] - 1b = deassertion event for upper critical going high enabled
[0] - 1b = deassertion event for upper critical going low enabled
For sensors with discrete events:
(00h otherwise)
[7] - reserved.
[6] - 1b = deassertion event msg. for state bit 14 enabled
[5] - 1b = deassertion event msg. for state bit 13 enabled
[4] - 1b = deassertion event msg. for state bit 12 enabled
[3] - 1b = deassertion event msg. for state bit 11 enabled
[2] - 1b = deassertion event msg. for state bit 10 enabled
[1] - 1b = deassertion event msg. for state bit 9 enabled
[0] - 1b = deassertion event msg. for state bit 8 enabled

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x04 0x29 0x14
rcvd: 29 00 Byte 1
Completion Code
00h = Command Completed Normally
C0 Byte 2
Response Data Byte 2
  [7] - 0b = All Event Messages disabled from this sensor
  [6] - 0b = Sensor scanning disabled
[5:0] - reserved. Ignore on read.
95 (Byte 3)
Response Data Byte 3
For sensors with threshold based events:
[7] - 1b = assertion event for upper non-critical going high enabled
[6] - 1b = assertion event for upper non-critical going low enabled
[5] - 1b = assertion event for lower non-recoverable going high enabled
[4] - 1b = assertion event for lower non-recoverable going low enabled
[3] - 1b = assertion event for lower critical going high enabled
[2] - 1b = assertion event for lower critical going low enabled
[1] - 1b = assertion event for lower non-critical going high enabled
[0] - 1b = assertion event for lower non-critical going low enabled
For sensors with discrete events:
[7] - 1b = assertion event msg. for state bit 7 enabled
[6] - 1b = assertion event msg. for state bit 6 enabled
[5] - 1b = assertion event msg. for state bit 5 enabled
[4] - 1b = assertion event msg. for state bit 4 enabled
[3] - 1b = assertion event msg. for state bit 3 enabled
[2] - 1b = assertion event msg. for state bit 2 enabled
[1] - 1b = assertion event msg. for state bit 1 enabled
[0] - 1b = assertion event msg. for state bit 0 enabled
0A (Byte 4)
Response Data Byte 4
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = assertion event for upper non-recoverable going high enabled
[2] - 1b = assertion event for upper non-recoverable going low enabled
[1] - 1b = assertion event for upper critical going high enabled
[0] - 1b = assertion event for upper critical going low enabled
For sensors with discrete events:
(00h otherwise)
[7] - reserved.
[6] - 1b = assertion event msg. for state bit 14 enabled
[5] - 1b = assertion event msg. for state bit 13 enabled
[4] - 1b = assertion event msg. for state bit 12 enabled
[3] - 1b = assertion event msg. for state bit 11 enabled
[2] - 1b = assertion event msg. for state bit 10 enabled
[1] - 1b = assertion event msg. for state bit 9 enabled
[0] - 1b = assertion event msg. for state bit 8 enabled
95 (Byte 5)
Response Data Byte 5
For sensors with threshold based events:
[7] - 1b = deassertion event for upper non-critical going high enabled
[6] - 1b = deassertion event for upper non-critical going low enabled
[5] - 1b = deassertion event for lower non-recoverable going high enabled
[4] - 1b = deassertion event for lower non-recoverable going low enabled
[3] - 1b = deassertion event for lower critical going high enabled
[2] - 1b = deassertion event for lower critical going low enabled
[1] - 1b = deassertion event for lower non-critical going high enabled
[0] - 1b = deassertion event for lower non-critical going low enabled
For sensors with discrete events:
[7] - 1b = deassertion event msg. for state bit 7 enabled
[6] - 1b = deassertion event msg. for state bit 6 enabled
[5] - 1b = deassertion event msg. for state bit 5 enabled
[4] - 1b = deassertion event msg. for state bit 4 enabled
[3] - 1b = deassertion event msg. for state bit 3 enabled
[2] - 1b = deassertion event msg. for state bit 2 enabled
[1] - 1b = deassertion event msg. for state bit 1 enabled
[0] - 1b = deassertion event msg. for state bit 0 enabled
0A (Byte 6)
Response Data Byte 6
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = deassertion event for upper non-recoverable going high enabled
[2] - 1b = deassertion event for upper non-recoverable going low enabled
[1] - 1b = deassertion event for upper critical going high enabled
[0] - 1b = deassertion event for upper critical going low enabled
For sensors with discrete events:
(00h otherwise)
[7] - reserved.
[6] - 1b = deassertion event msg. for state bit 14 enabled
[5] - 1b = deassertion event msg. for state bit 13 enabled
[4] - 1b = deassertion event msg. for state bit 12 enabled
[3] - 1b = deassertion event msg. for state bit 11 enabled
[2] - 1b = deassertion event msg. for state bit 10 enabled
[1] - 1b = deassertion event msg. for state bit 9 enabled
[0] - 1b = deassertion event msg. for state bit 8 enabled



Re-arm Sensor Events - NetFn = Sensor/Event (0x04h), CMD = 0x2ah, Privilege Level = Operator
| Linux |
[IPMItool]
ipmitool raw 0x04 0x2a D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Request Data Byte 2
  [7] - 0b = re-arm all event status from this sensor
        If 0, following parameter bytes are ignored, but should still be written as 0, if sent.
[6:0] - reserved. Write as 000_0000b.
(D[3]) (Byte 3)
Request Data Byte 3
For sensors with threshold based events:
[7] - 1b = re-arm assertion event for upper non-critical going high
[6] - 1b = re-arm assertion event for upper non-critical going low
[5] - 1b = re-arm assertion event for lower non-recoverable going high
[4] - 1b = re-arm assertion event for lower non-recoverable going low
[3] - 1b = re-arm assertion event for lower critical going high
[2] - 1b = re-arm assertion event for lower critical going low
[1] - 1b = re-arm assertion event for lower non-critical going high
[0] - 1b = re-arm assertion event for lower non-critical going low
For sensors with discrete events:
[7] - 1b = re-arm assertion event for state bit 7
[6] - 1b = re-arm assertion event for state bit 6
[5] - 1b = re-arm assertion event for state bit 5
[4] - 1b = re-arm assertion event for state bit 4
[3] - 1b = re-arm assertion event for state bit 3
[2] - 1b = re-arm assertion event for state bit 2
[1] - 1b = re-arm assertion event for state bit 1
[0] - 1b = re-arm assertion event for state bit 0
(D[4]) (Byte 4)
Request Data Byte 4
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = re-arm assertion event for upper non-recoverable going high
[2] - 1b = re-arm assertion event for upper non-recoverable going low
[1] - 1b = re-arm assertion event for upper critical going high
[0] - 1b = re-arm assertion event for upper critical going low
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = re-arm assertion event for state bit 14
[5] - 1b = re-arm assertion event for state bit 13
[4] - 1b = re-arm assertion event for state bit 12
[3] - 1b = re-arm assertion event for state bit 11
[2] - 1b = re-arm assertion event for state bit 10
[1] - 1b = re-arm assertion event for state bit 9
[0] - 1b = re-arm assertion event for state bit 8
(D[5]) (Byte 5)
Request Data Byte 1
For sensors with threshold based events:
[7] - 1b = re-arm deassertion event for upper non-critical going high
[6] - 1b = re-arm deassertion event for upper non-critical going low
[5] - 1b = re-arm deassertion event for lower non-recoverable going high
[4] - 1b = re-arm deassertion event for lower non-recoverable going low
[3] - 1b = re-arm deassertion event for lower critical going high
[2] - 1b = re-arm deassertion event for lower critical going low
[1] - 1b = re-arm deassertion event for lower non-critical going high
[0] - 1b = re-arm deassertion event for lower non-critical going low
For sensors with discrete events:
(00h otherwise)
[7] - 1b = re-arm deassertion event for state bit 7
[6] - 1b = re-arm deassertion event for state bit 6
[5] - 1b = re-arm deassertion event for state bit 5
[4] - 1b = re-arm deassertion event for state bit 4
[3] - 1b = re-arm deassertion event for state bit 3
[2] - 1b = re-arm deassertion event for state bit 2
[1] - 1b = re-arm deassertion event for state bit 1
[0] - 1b = re-arm deassertion event for state bit 0
(D[6]) (Byte 6)
Request Data Byte 2
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = re-arm deassertion event for upper non-recoverable going high
[2] - 1b = re-arm deassertion event for upper non-recoverable going low
[1] - 1b = re-arm deassertion event for upper critical going high
[0] - 1b = re-arm deassertion event for upper critical going low
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = re-arm deassertion event for state bit 14
[5] - 1b = re-arm deassertion event for state bit 13
[4] - 1b = re-arm deassertion event for state bit 12
[3] - 1b = re-arm deassertion event for state bit 11
[2] - 1b = re-arm deassertion event for state bit 10
[1] - 1b = re-arm deassertion event for state bit 9
[0] - 1b = re-arm deassertion event for state bit 8

[ipmiutil]
ipmiutil cmd 00 20 10 2a D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Request Data Byte 2
  [7] - 0b = re-arm all event status from this sensor
        If 0, following parameter bytes are ignored, but should still be written as 0, if sent.
[6:0] - reserved. Write as 000_0000b.
(D[3]) (Byte 3)
Request Data Byte 3
For sensors with threshold based events:
[7] - 1b = re-arm assertion event for upper non-critical going high
[6] - 1b = re-arm assertion event for upper non-critical going low
[5] - 1b = re-arm assertion event for lower non-recoverable going high
[4] - 1b = re-arm assertion event for lower non-recoverable going low
[3] - 1b = re-arm assertion event for lower critical going high
[2] - 1b = re-arm assertion event for lower critical going low
[1] - 1b = re-arm assertion event for lower non-critical going high
[0] - 1b = re-arm assertion event for lower non-critical going low
For sensors with discrete events:
[7] - 1b = re-arm assertion event for state bit 7
[6] - 1b = re-arm assertion event for state bit 6
[5] - 1b = re-arm assertion event for state bit 5
[4] - 1b = re-arm assertion event for state bit 4
[3] - 1b = re-arm assertion event for state bit 3
[2] - 1b = re-arm assertion event for state bit 2
[1] - 1b = re-arm assertion event for state bit 1
[0] - 1b = re-arm assertion event for state bit 0
(D[4]) (Byte 4)
Request Data Byte 4
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = re-arm assertion event for upper non-recoverable going high
[2] - 1b = re-arm assertion event for upper non-recoverable going low
[1] - 1b = re-arm assertion event for upper critical going high
[0] - 1b = re-arm assertion event for upper critical going low
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = re-arm assertion event for state bit 14
[5] - 1b = re-arm assertion event for state bit 13
[4] - 1b = re-arm assertion event for state bit 12
[3] - 1b = re-arm assertion event for state bit 11
[2] - 1b = re-arm assertion event for state bit 10
[1] - 1b = re-arm assertion event for state bit 9
[0] - 1b = re-arm assertion event for state bit 8
(D[5]) (Byte 5)
Request Data Byte 1
For sensors with threshold based events:
[7] - 1b = re-arm deassertion event for upper non-critical going high
[6] - 1b = re-arm deassertion event for upper non-critical going low
[5] - 1b = re-arm deassertion event for lower non-recoverable going high
[4] - 1b = re-arm deassertion event for lower non-recoverable going low
[3] - 1b = re-arm deassertion event for lower critical going high
[2] - 1b = re-arm deassertion event for lower critical going low
[1] - 1b = re-arm deassertion event for lower non-critical going high
[0] - 1b = re-arm deassertion event for lower non-critical going low
For sensors with discrete events:
(00h otherwise)
[7] - 1b = re-arm deassertion event for state bit 7
[6] - 1b = re-arm deassertion event for state bit 6
[5] - 1b = re-arm deassertion event for state bit 5
[4] - 1b = re-arm deassertion event for state bit 4
[3] - 1b = re-arm deassertion event for state bit 3
[2] - 1b = re-arm deassertion event for state bit 2
[1] - 1b = re-arm deassertion event for state bit 1
[0] - 1b = re-arm deassertion event for state bit 0
(D[6]) (Byte 6)
Request Data Byte 2
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = re-arm deassertion event for upper non-recoverable going high
[2] - 1b = re-arm deassertion event for upper non-recoverable going low
[1] - 1b = re-arm deassertion event for upper critical going high
[0] - 1b = re-arm deassertion event for upper critical going low
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = re-arm deassertion event for state bit 14
[5] - 1b = re-arm deassertion event for state bit 13
[4] - 1b = re-arm deassertion event for state bit 12
[3] - 1b = re-arm deassertion event for state bit 11
[2] - 1b = re-arm deassertion event for state bit 10
[1] - 1b = re-arm deassertion event for state bit 9
[0] - 1b = re-arm deassertion event for state bit 8

icmd 00 20 10 2a D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Request Data Byte 2
  [7] - 0b = re-arm all event status from this sensor
        If 0, following parameter bytes are ignored, but should still be written as 0, if sent.
[6:0] - reserved. Write as 000_0000b.
(D[3]) (Byte 3)
Request Data Byte 3
For sensors with threshold based events:
[7] - 1b = re-arm assertion event for upper non-critical going high
[6] - 1b = re-arm assertion event for upper non-critical going low
[5] - 1b = re-arm assertion event for lower non-recoverable going high
[4] - 1b = re-arm assertion event for lower non-recoverable going low
[3] - 1b = re-arm assertion event for lower critical going high
[2] - 1b = re-arm assertion event for lower critical going low
[1] - 1b = re-arm assertion event for lower non-critical going high
[0] - 1b = re-arm assertion event for lower non-critical going low
For sensors with discrete events:
[7] - 1b = re-arm assertion event for state bit 7
[6] - 1b = re-arm assertion event for state bit 6
[5] - 1b = re-arm assertion event for state bit 5
[4] - 1b = re-arm assertion event for state bit 4
[3] - 1b = re-arm assertion event for state bit 3
[2] - 1b = re-arm assertion event for state bit 2
[1] - 1b = re-arm assertion event for state bit 1
[0] - 1b = re-arm assertion event for state bit 0
(D[4]) (Byte 4)
Request Data Byte 4
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = re-arm assertion event for upper non-recoverable going high
[2] - 1b = re-arm assertion event for upper non-recoverable going low
[1] - 1b = re-arm assertion event for upper critical going high
[0] - 1b = re-arm assertion event for upper critical going low
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = re-arm assertion event for state bit 14
[5] - 1b = re-arm assertion event for state bit 13
[4] - 1b = re-arm assertion event for state bit 12
[3] - 1b = re-arm assertion event for state bit 11
[2] - 1b = re-arm assertion event for state bit 10
[1] - 1b = re-arm assertion event for state bit 9
[0] - 1b = re-arm assertion event for state bit 8
(D[5]) (Byte 5)
Request Data Byte 1
For sensors with threshold based events:
[7] - 1b = re-arm deassertion event for upper non-critical going high
[6] - 1b = re-arm deassertion event for upper non-critical going low
[5] - 1b = re-arm deassertion event for lower non-recoverable going high
[4] - 1b = re-arm deassertion event for lower non-recoverable going low
[3] - 1b = re-arm deassertion event for lower critical going high
[2] - 1b = re-arm deassertion event for lower critical going low
[1] - 1b = re-arm deassertion event for lower non-critical going high
[0] - 1b = re-arm deassertion event for lower non-critical going low
For sensors with discrete events:
(00h otherwise)
[7] - 1b = re-arm deassertion event for state bit 7
[6] - 1b = re-arm deassertion event for state bit 6
[5] - 1b = re-arm deassertion event for state bit 5
[4] - 1b = re-arm deassertion event for state bit 4
[3] - 1b = re-arm deassertion event for state bit 3
[2] - 1b = re-arm deassertion event for state bit 2
[1] - 1b = re-arm deassertion event for state bit 1
[0] - 1b = re-arm deassertion event for state bit 0
(D[6]) (Byte 6)
Request Data Byte 2
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = re-arm deassertion event for upper non-recoverable going high
[2] - 1b = re-arm deassertion event for upper non-recoverable going low
[1] - 1b = re-arm deassertion event for upper critical going high
[0] - 1b = re-arm deassertion event for upper critical going low
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = re-arm deassertion event for state bit 14
[5] - 1b = re-arm deassertion event for state bit 13
[4] - 1b = re-arm deassertion event for state bit 12
[3] - 1b = re-arm deassertion event for state bit 11
[2] - 1b = re-arm deassertion event for state bit 10
[1] - 1b = re-arm deassertion event for state bit 9
[0] - 1b = re-arm deassertion event for state bit 8

[FreeIPMI]
ipmi-raw 0x00 0x04 0x2a D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Request Data Byte 2
  [7] - 0b = re-arm all event status from this sensor
        If 0, following parameter bytes are ignored, but should still be written as 0, if sent.
[6:0] - reserved. Write as 000_0000b.
(D[3]) (Byte 3)
Request Data Byte 3
For sensors with threshold based events:
[7] - 1b = re-arm assertion event for upper non-critical going high
[6] - 1b = re-arm assertion event for upper non-critical going low
[5] - 1b = re-arm assertion event for lower non-recoverable going high
[4] - 1b = re-arm assertion event for lower non-recoverable going low
[3] - 1b = re-arm assertion event for lower critical going high
[2] - 1b = re-arm assertion event for lower critical going low
[1] - 1b = re-arm assertion event for lower non-critical going high
[0] - 1b = re-arm assertion event for lower non-critical going low
For sensors with discrete events:
[7] - 1b = re-arm assertion event for state bit 7
[6] - 1b = re-arm assertion event for state bit 6
[5] - 1b = re-arm assertion event for state bit 5
[4] - 1b = re-arm assertion event for state bit 4
[3] - 1b = re-arm assertion event for state bit 3
[2] - 1b = re-arm assertion event for state bit 2
[1] - 1b = re-arm assertion event for state bit 1
[0] - 1b = re-arm assertion event for state bit 0
(D[4]) (Byte 4)
Request Data Byte 4
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = re-arm assertion event for upper non-recoverable going high
[2] - 1b = re-arm assertion event for upper non-recoverable going low
[1] - 1b = re-arm assertion event for upper critical going high
[0] - 1b = re-arm assertion event for upper critical going low
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = re-arm assertion event for state bit 14
[5] - 1b = re-arm assertion event for state bit 13
[4] - 1b = re-arm assertion event for state bit 12
[3] - 1b = re-arm assertion event for state bit 11
[2] - 1b = re-arm assertion event for state bit 10
[1] - 1b = re-arm assertion event for state bit 9
[0] - 1b = re-arm assertion event for state bit 8
(D[5]) (Byte 5)
Request Data Byte 1
For sensors with threshold based events:
[7] - 1b = re-arm deassertion event for upper non-critical going high
[6] - 1b = re-arm deassertion event for upper non-critical going low
[5] - 1b = re-arm deassertion event for lower non-recoverable going high
[4] - 1b = re-arm deassertion event for lower non-recoverable going low
[3] - 1b = re-arm deassertion event for lower critical going high
[2] - 1b = re-arm deassertion event for lower critical going low
[1] - 1b = re-arm deassertion event for lower non-critical going high
[0] - 1b = re-arm deassertion event for lower non-critical going low
For sensors with discrete events:
(00h otherwise)
[7] - 1b = re-arm deassertion event for state bit 7
[6] - 1b = re-arm deassertion event for state bit 6
[5] - 1b = re-arm deassertion event for state bit 5
[4] - 1b = re-arm deassertion event for state bit 4
[3] - 1b = re-arm deassertion event for state bit 3
[2] - 1b = re-arm deassertion event for state bit 2
[1] - 1b = re-arm deassertion event for state bit 1
[0] - 1b = re-arm deassertion event for state bit 0
(D[6]) (Byte 6)
Request Data Byte 2
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = re-arm deassertion event for upper non-recoverable going high
[2] - 1b = re-arm deassertion event for upper non-recoverable going low
[1] - 1b = re-arm deassertion event for upper critical going high
[0] - 1b = re-arm deassertion event for upper critical going low
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = re-arm deassertion event for state bit 14
[5] - 1b = re-arm deassertion event for state bit 13
[4] - 1b = re-arm deassertion event for state bit 12
[3] - 1b = re-arm deassertion event for state bit 11
[2] - 1b = re-arm deassertion event for state bit 10
[1] - 1b = re-arm deassertion event for state bit 9
[0] - 1b = re-arm deassertion event for state bit 8

| MS-DOS |
[ipmitool]
ipmitool 20 10 2a Data[1:2] (Data[3:6])

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

[ipmiutil in Linux]
$ icmd 00 20 10 2a 13 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 0x2a 0x14 0x00
rcvd: 2A 00 Byte 1
Completion Code
00h = Command Completed Normally

[ipmitool in DOS]
C:\> ipmitool 20 10 2a 01 00
20 14 2A 00


Get Sensor Event Status - NetFn = Sensor/Event (0x04h), CMD = 0x2bh, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x2b D[1] Byte 1
Sensor number
(FFh = reserved)

[ipmiutil]
ipmiutil cmd 00 20 10 2b D[1] Byte 1
Sensor number
(FFh = reserved)

icmd 00 20 10 2b D[1] Byte 1
Sensor number
(FFh = reserved)

[FreeIPMI]
ipmi-raw 0x00 0x04 0x2b D[1] Byte 1
Sensor number
(FFh = reserved)

| MS-DOS |
[ipmitool]
ipmitool 20 10 2b Data[1]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x04 0x2b 0x01
 c0 Byte 2
Response Data Byte 2
[7] - 0b = All Event Messages disabled from this sensor
[6] - 0b = Sensor scanning disabled
[5] - 1b = reading/state unavailable (formerly “initial update in progress”).
[4:0] - reserved. Ignore on read
00 Byte 3
Response Data Byte 3
For sensors with threshold based events:
(High-going events are asserted when value first becomes >= threshold.
Low-going events are asserted when value first becomes <= corresponding threshold.)
[7] - 1b = assertion event condition for upper non-critical going high occurred
[6] - 1b = assertion event condition for upper non-critical going low occurred
[5] - 1b = assertion event condition for lower non-recoverable going high occurred
[4] - 1b = assertion event condition for lower non-recoverable going low occurred
[3] - 1b = assertion event condition for lower critical going high occurred
[2] - 1b = assertion event condition for lower critical going low occurred
[1] - 1b = assertion event condition for lower non-critical going high occurred
[0] - 1b = assertion event condition for lower non-critical going low occurred
For sensors with discrete events:
[7] - 1b = state 7 assertion event occurred
[6] - 1b = state 6 assertion event occurred
[5] - 1b = state 5 assertion event occurred
[4] - 1b = state 4 assertion event occurred
[3] - 1b = state 3 assertion event occurred
[2] - 1b = state 2 assertion event occurred
[1] - 1b = state 1 assertion event occurred
[0] - 1b = state 0 assertion event occurred
00 (Byte 4)
Response Data Byte 4
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = assertion event condition for upper non-recoverable going high occurred
[2] - 1b = assertion event condition for upper non-recoverable going low occurred
[1] - 1b = assertion event condition for upper critical going high occurred
[0] - 1b = assertion event condition for upper critical going low occurred
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = state 14 assertion event occurred
[5] - 1b = state 13 assertion event occurred
[4] - 1b = state 12 assertion event occurred
[3] - 1b = state 11 assertion event occurred
[2] - 1b = state 10 assertion event occurred
[1] - 1b = state 9 assertion event occurred
[0] - 1b = state 8 assertion event occurred
00 (Byte 5)
Response Data Byte 5
For sensors with threshold based events:
(High-going events are deasserted when value goes less than the corresponding threshold minus the positive-going hysteresis value.
Low-going events are deasserted when value goes greater than the corresponding threshold plus the negative-going hysteresis value.)
[7] - 1b = deassertion event condition for upper non-critical going high occurred
[6] - 1b = deassertion event condition for upper non-critical going low occurred
[5] - 1b = deassertion event condition for lower non-recoverable going high occurred
[4] - 1b = deassertion event condition for lower non-recoverable going low occurred
[3] - 1b = deassertion event condition for lower critical going high occurred
[2] - 1b = deassertion event condition for lower critical going low occurred
[1] - 1b = deassertion event condition for lower non-critical going high occurred
[0] - 1b = deassertion event condition for lower non-critical going low occurred
For sensors with discrete events:
[7] - 1b = state 7 deassertion event occurred
[6] - 1b = state 6 deassertion event occurred
[5] - 1b = state 5 deassertion event occurred
[4] - 1b = state 4 deassertion event occurred
[3] - 1b = state 3 deassertion event occurred
[2] - 1b = state 2 deassertion event occurred
[1] - 1b = state 1 deassertion event occurred
[0] - 1b = state 0 deassertion event occurred
00 (Byte 6)
Response Data Byte 6
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = deassertion event condition for upper non-recoverable going high occurred
[2] - 1b = deassertion event condition for upper non-recoverable going low occurred
[1] - 1b = deassertion event condition for upper critical going high occurred
[0] - 1b = deassertion event condition for upper critical going low occurred
For sensors with discrete events:
(0h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = state 14 deassertion event occurred
[5] - 1b = state 13 deassertion event occurred
[4] - 1b = state 12 deassertion event occurred
[3] - 1b = state 11 deassertion event occurred
[2] - 1b = state 10 deassertion event occurred
[1] - 1b = state 9 deassertion event occurred
[0] - 1b = state 8 deassertion event occurred

[ipmiutil in Linux]
$ icmd 00 20 10 2b 13
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=5]: c0 Byte 2
Response Data Byte 2
[7] - 0b = All Event Messages disabled from this sensor
[6] - 0b = Sensor scanning disabled
[5] - 1b = reading/state unavailable (formerly “initial update in progress”).
[4:0] - reserved. Ignore on read
00 Byte 3
Response Data Byte 3
For sensors with threshold based events:
(High-going events are asserted when value first becomes >= threshold.
Low-going events are asserted when value first becomes <= corresponding threshold.)
[7] - 1b = assertion event condition for upper non-critical going high occurred
[6] - 1b = assertion event condition for upper non-critical going low occurred
[5] - 1b = assertion event condition for lower non-recoverable going high occurred
[4] - 1b = assertion event condition for lower non-recoverable going low occurred
[3] - 1b = assertion event condition for lower critical going high occurred
[2] - 1b = assertion event condition for lower critical going low occurred
[1] - 1b = assertion event condition for lower non-critical going high occurred
[0] - 1b = assertion event condition for lower non-critical going low occurred
For sensors with discrete events:
[7] - 1b = state 7 assertion event occurred
[6] - 1b = state 6 assertion event occurred
[5] - 1b = state 5 assertion event occurred
[4] - 1b = state 4 assertion event occurred
[3] - 1b = state 3 assertion event occurred
[2] - 1b = state 2 assertion event occurred
[1] - 1b = state 1 assertion event occurred
[0] - 1b = state 0 assertion event occurred
00 (Byte 4)
Response Data Byte 4
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = assertion event condition for upper non-recoverable going high occurred
[2] - 1b = assertion event condition for upper non-recoverable going low occurred
[1] - 1b = assertion event condition for upper critical going high occurred
[0] - 1b = assertion event condition for upper critical going low occurred
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = state 14 assertion event occurred
[5] - 1b = state 13 assertion event occurred
[4] - 1b = state 12 assertion event occurred
[3] - 1b = state 11 assertion event occurred
[2] - 1b = state 10 assertion event occurred
[1] - 1b = state 9 assertion event occurred
[0] - 1b = state 8 assertion event occurred
00 (Byte 5)
Response Data Byte 5
For sensors with threshold based events:
(High-going events are deasserted when value goes less than the corresponding threshold minus the positive-going hysteresis value.
Low-going events are deasserted when value goes greater than the corresponding threshold plus the negative-going hysteresis value.)
[7] - 1b = deassertion event condition for upper non-critical going high occurred
[6] - 1b = deassertion event condition for upper non-critical going low occurred
[5] - 1b = deassertion event condition for lower non-recoverable going high occurred
[4] - 1b = deassertion event condition for lower non-recoverable going low occurred
[3] - 1b = deassertion event condition for lower critical going high occurred
[2] - 1b = deassertion event condition for lower critical going low occurred
[1] - 1b = deassertion event condition for lower non-critical going high occurred
[0] - 1b = deassertion event condition for lower non-critical going low occurred
For sensors with discrete events:
[7] - 1b = state 7 deassertion event occurred
[6] - 1b = state 6 deassertion event occurred
[5] - 1b = state 5 deassertion event occurred
[4] - 1b = state 4 deassertion event occurred
[3] - 1b = state 3 deassertion event occurred
[2] - 1b = state 2 deassertion event occurred
[1] - 1b = state 1 deassertion event occurred
[0] - 1b = state 0 deassertion event occurred
00 (Byte 6)
Response Data Byte 6
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = deassertion event condition for upper non-recoverable going high occurred
[2] - 1b = deassertion event condition for upper non-recoverable going low occurred
[1] - 1b = deassertion event condition for upper critical going high occurred
[0] - 1b = deassertion event condition for upper critical going low occurred
For sensors with discrete events:
(0h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = state 14 deassertion event occurred
[5] - 1b = state 13 deassertion event occurred
[4] - 1b = state 12 deassertion event occurred
[3] - 1b = state 11 deassertion event occurred
[2] - 1b = state 10 deassertion event occurred
[1] - 1b = state 9 deassertion event occurred
[0] - 1b = state 8 deassertion event occurred

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x04 0x2b 0x14
rcvd: 2B 00 Byte 1
Completion Code
00h = Command Completed Normally
C0 Byte 2
Response Data Byte 2
[7] - 0b = All Event Messages disabled from this sensor
[6] - 0b = Sensor scanning disabled
[5] - 1b = reading/state unavailable (formerly “initial update in progress”).
[4:0] - reserved. Ignore on read
00 Byte 3
Response Data Byte 3
For sensors with threshold based events:
(High-going events are asserted when value first becomes >= threshold.
Low-going events are asserted when value first becomes <= corresponding threshold.)
[7] - 1b = assertion event condition for upper non-critical going high occurred
[6] - 1b = assertion event condition for upper non-critical going low occurred
[5] - 1b = assertion event condition for lower non-recoverable going high occurred
[4] - 1b = assertion event condition for lower non-recoverable going low occurred
[3] - 1b = assertion event condition for lower critical going high occurred
[2] - 1b = assertion event condition for lower critical going low occurred
[1] - 1b = assertion event condition for lower non-critical going high occurred
[0] - 1b = assertion event condition for lower non-critical going low occurred
For sensors with discrete events:
[7] - 1b = state 7 assertion event occurred
[6] - 1b = state 6 assertion event occurred
[5] - 1b = state 5 assertion event occurred
[4] - 1b = state 4 assertion event occurred
[3] - 1b = state 3 assertion event occurred
[2] - 1b = state 2 assertion event occurred
[1] - 1b = state 1 assertion event occurred
[0] - 1b = state 0 assertion event occurred
00 (Byte 4)
Response Data Byte 4
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = assertion event condition for upper non-recoverable going high occurred
[2] - 1b = assertion event condition for upper non-recoverable going low occurred
[1] - 1b = assertion event condition for upper critical going high occurred
[0] - 1b = assertion event condition for upper critical going low occurred
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = state 14 assertion event occurred
[5] - 1b = state 13 assertion event occurred
[4] - 1b = state 12 assertion event occurred
[3] - 1b = state 11 assertion event occurred
[2] - 1b = state 10 assertion event occurred
[1] - 1b = state 9 assertion event occurred
[0] - 1b = state 8 assertion event occurred
00 (Byte 5)
Response Data Byte 5
For sensors with threshold based events:
(High-going events are deasserted when value goes less than the corresponding threshold minus the positive-going hysteresis value.
Low-going events are deasserted when value goes greater than the corresponding threshold plus the negative-going hysteresis value.)
[7] - 1b = deassertion event condition for upper non-critical going high occurred
[6] - 1b = deassertion event condition for upper non-critical going low occurred
[5] - 1b = deassertion event condition for lower non-recoverable going high occurred
[4] - 1b = deassertion event condition for lower non-recoverable going low occurred
[3] - 1b = deassertion event condition for lower critical going high occurred
[2] - 1b = deassertion event condition for lower critical going low occurred
[1] - 1b = deassertion event condition for lower non-critical going high occurred
[0] - 1b = deassertion event condition for lower non-critical going low occurred
For sensors with discrete events:
[7] - 1b = state 7 deassertion event occurred
[6] - 1b = state 6 deassertion event occurred
[5] - 1b = state 5 deassertion event occurred
[4] - 1b = state 4 deassertion event occurred
[3] - 1b = state 3 deassertion event occurred
[2] - 1b = state 2 deassertion event occurred
[1] - 1b = state 1 deassertion event occurred
[0] - 1b = state 0 deassertion event occurred
00 (Byte 6)
Response Data Byte 6
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = deassertion event condition for upper non-recoverable going high occurred
[2] - 1b = deassertion event condition for upper non-recoverable going low occurred
[1] - 1b = deassertion event condition for upper critical going high occurred
[0] - 1b = deassertion event condition for upper critical going low occurred
For sensors with discrete events:
(0h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = state 14 deassertion event occurred
[5] - 1b = state 13 deassertion event occurred
[4] - 1b = state 12 deassertion event occurred
[3] - 1b = state 11 deassertion event occurred
[2] - 1b = state 10 deassertion event occurred
[1] - 1b = state 9 deassertion event occurred
[0] - 1b = state 8 deassertion event occurred

[ipmitool in DOS]
C:\> ipmitool 20 10 2b 01
20 14 2B 00 C0 00 00 00 00


Get Sensor Reading - NetFn = Sensor/Event (0x04h), CMD = 0x2dh, Privilege Level = User, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x04 0x2d D[1] Byte 1
sensor number
(FFh = reserved)

ipmitool sensor
ipmitool sensor list
ipmitool sensor get <id>
[ipmiutil]
ipmiutil cmd 00 20 10 2d D[1] Byte 1
sensor number
(FFh = reserved)

icmd 00 20 10 2d D[1] Byte 1
sensor number
(FFh = reserved)

ipmiutil sensor
isensor
[FreeIPMI]
ipmi-raw 0x00 0x04 0x2d D[1] Byte 1
sensor number
(FFh = reserved)

ipmi-sensors
| MS-DOS |
[ipmitool]
ipmitool 20 10 2d Data[1]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x04 0x2d 0x01
 23 Byte 2
Sensor reading
Byte 1: byte of reading.
Ignore on read if sensor does not return an numeric (analog) reading.
c0 Byte 3
Response Data Byte 3
[7] - 0b = All Event Messages disabled from this sensor
[6] - 0b = sensor scanning disabled
[5] - 1b = reading/state unavailable (formerly “initial update in progress”).
[4:0] - reserved. Ignore on read.
c0 (Byte 4)
Response Data Byte 4
For threshold-based sensors
Present threshold comparison status
[7:6] - reserved. Returned as 1b. Ignore on read.
[5] - 1b = at or above (>=) upper non-recoverable threshold
[4] - 1b = at or above (>=) upper critical threshold
[3] - 1b = at or above (>=) upper non-critical threshold
[2] - 1b = at or below (<=) lower non-recoverable threshold
[1] - 1b = at or below (<=) lower critical threshold
[0] - 1b = at or below (<=) lower non-critical threshold
For discrete reading sensors
[7] - 1b = state 7 asserted
[6] - 1b = state 6 asserted
[5] - 1b = state 5 asserted
[4] - 1b = state 4 asserted
[3] - 1b = state 3 asserted
[2] - 1b = state 2 asserted
[1] - 1b = state 1 asserted
[0] - 1b = state 0 asserted
00 (Byte 5)
Response Data Byte 5
For discrete reading sensors only. (Optional)
(00h Otherwise)
[7] - reserved. Returned as 1b. Ignore on read.
[6] - 1b = state 14 asserted
[5] - 1b = state 13 asserted
[4] - 1b = state 12 asserted
[3] - 1b = state 11 asserted
[2] - 1b = state 10 asserted
[1] - 1b = state 9 asserted
[0] - 1b = state 8 asserted

$ ipmitool sensor
TEMP_CPU0        | 34.000     | degrees C  | ok    | 0.000     | 2.000     | 5.000     | 80.000    | 85.000    | 90.000
TEMP_ENV         | 36.000     | degrees C  | ok    | 0.000     | 2.000     | 5.000     | 75.000    | 78.000    | 80.000
TEMP_BMC         | 34.000     | degrees C  | ok    | 0.000     | 2.000     | 5.000     | 75.000    | 78.000    | 80.000
$ ipmitool sensor get TEMP_CPU0
Locating sensor record...
Sensor ID              : TEMP_CPU0 (0x1)
 Entity ID             : 3.0
 Sensor Type (Threshold)  : Temperature
 Sensor Reading        : 34 (+/- 0) degrees C
 Status                : ok
 Lower Non-Recoverable : 0.000
 Lower Critical        : 2.000
 Lower Non-Critical    : 5.000
 Upper Non-Critical    : 80.000
 Upper Critical        : 85.000
 Upper Non-Recoverable : 90.000
 Positive Hysteresis   : Unspecified
 Negative Hysteresis   : Unspecified
 Assertion Events      :
 Assertions Enabled    : unc+ ucr+ unr+
 Deassertions Enabled  : unc+ ucr+ unr+

[ipmiutil in Linux]
$ icmd 00 20 10 2d 13
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=4]: 24 Byte 2
Sensor reading
Byte 1: byte of reading.
Ignore on read if sensor does not return an numeric (analog) reading.
c0 Byte 3
Response Data Byte 3
[7] - 0b = All Event Messages disabled from this sensor
[6] - 0b = sensor scanning disabled
[5] - 1b = reading/state unavailable (formerly “initial update in progress”).
[4:0] - reserved. Ignore on read.
c0 (Byte 4)
Response Data Byte 4
For threshold-based sensors
Present threshold comparison status
[7:6] - reserved. Returned as 1b. Ignore on read.
[5] - 1b = at or above (>=) upper non-recoverable threshold
[4] - 1b = at or above (>=) upper critical threshold
[3] - 1b = at or above (>=) upper non-critical threshold
[2] - 1b = at or below (<=) lower non-recoverable threshold
[1] - 1b = at or below (<=) lower critical threshold
[0] - 1b = at or below (<=) lower non-critical threshold
For discrete reading sensors
[7] - 1b = state 7 asserted
[6] - 1b = state 6 asserted
[5] - 1b = state 5 asserted
[4] - 1b = state 4 asserted
[3] - 1b = state 3 asserted
[2] - 1b = state 2 asserted
[1] - 1b = state 1 asserted
[0] - 1b = state 0 asserted
00 (Byte 5)
Response Data Byte 5
For discrete reading sensors only. (Optional)
(00h Otherwise)
[7] - reserved. Returned as 1b. Ignore on read.
[6] - 1b = state 14 asserted
[5] - 1b = state 13 asserted
[4] - 1b = state 12 asserted
[3] - 1b = state 11 asserted
[2] - 1b = state 10 asserted
[1] - 1b = state 9 asserted
[0] - 1b = state 8 asserted

send_icmd ret = 0
ipmiutil cmd, completed successfully
$ isensor
ipmiutil sensor version 3.10
-- BMC version 1.07, IPMI version 2.0
_ID_ SDR_Type_xx ET Own Typ S_Num   Sens_Description   Hex & Interp Reading
0001 SDR Full 01 01 20 a 01 snum 01 TEMP_CPU0        = 22 OK   34.00 degrees C
0002 SDR Full 01 01 20 a 01 snum 13 TEMP_ENV         = 24 OK   36.00 degrees C
0003 SDR Full 01 01 20 a 01 snum 14 TEMP_BMC         = 23 OK   35.00 degrees C
Bad SDR Length, please apply the correct FRU/SDR diskette
Bad SDR Length, please apply the correct FRU/SDR diskette
Bad SDR Length, please apply the correct FRU/SDR diskette
     SDR IPMI       sensor: Power On Hours         = 82 hours
ipmiutil sensor, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x04 0x2d 0x14
rcvd: 2D 00 Byte 1
Completion Code
00h = Command Completed Normally
22 Byte 2
Sensor reading
Byte 1: byte of reading.
Ignore on read if sensor does not return an numeric (analog) reading.
C0 Byte 3
Response Data Byte 3
[7] - 0b = All Event Messages disabled from this sensor
[6] - 0b = sensor scanning disabled
[5] - 1b = reading/state unavailable (formerly “initial update in progress”).
[4:0] - reserved. Ignore on read.
C0 (Byte 4)
Response Data Byte 4
For threshold-based sensors
Present threshold comparison status
[7:6] - reserved. Returned as 1b. Ignore on read.
[5] - 1b = at or above (>=) upper non-recoverable threshold
[4] - 1b = at or above (>=) upper critical threshold
[3] - 1b = at or above (>=) upper non-critical threshold
[2] - 1b = at or below (<=) lower non-recoverable threshold
[1] - 1b = at or below (<=) lower critical threshold
[0] - 1b = at or below (<=) lower non-critical threshold
For discrete reading sensors
[7] - 1b = state 7 asserted
[6] - 1b = state 6 asserted
[5] - 1b = state 5 asserted
[4] - 1b = state 4 asserted
[3] - 1b = state 3 asserted
[2] - 1b = state 2 asserted
[1] - 1b = state 1 asserted
[0] - 1b = state 0 asserted
00 (Byte 5)
Response Data Byte 5
For discrete reading sensors only. (Optional)
(00h Otherwise)
[7] - reserved. Returned as 1b. Ignore on read.
[6] - 1b = state 14 asserted
[5] - 1b = state 13 asserted
[4] - 1b = state 12 asserted
[3] - 1b = state 11 asserted
[2] - 1b = state 10 asserted
[1] - 1b = state 9 asserted
[0] - 1b = state 8 asserted

$ ipmi-sensors
Caching SDR repository information: /.freeipmi/sdr-cache/sdr-cache.localhost
Caching SDR record 25 of 25 (current record ID 25)
ID | Name        | Type        | Reading    | Units | Event
1  | TEMP_CPU0   | Temperature | 37.00      | C     | 'OK'
2  | TEMP_ENV    | Temperature | 38.00      | C     | 'OK'
3  | TEMP_BMC    | Temperature | 36.00      | C     | 'OK'
24 | Watchdog2   | Watchdog 2  | N/A        | N/A   | 'OK'


Set Sensor Type - NetFn = Sensor/Event (0x04h), CMD = 0x2eh, Privilege Level = Operator, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x2e D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
sensor type
(per Table 42-3, Sensor Type Codes)
D[3] Byte 3
Request Data Byte 3
  [7] - reserved
[6:0] - Event/Reading type code (per Table 42-2, Generic Event/Reading Type Codes)

[ipmiutil]
ipmiutil cmd 00 20 10 2e D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
sensor type
(per Table 42-3, Sensor Type Codes)
D[3] Byte 3
Request Data Byte 3
  [7] - reserved
[6:0] - Event/Reading type code (per Table 42-2, Generic Event/Reading Type Codes)

icmd 00 20 10 2e D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
sensor type
(per Table 42-3, Sensor Type Codes)
D[3] Byte 3
Request Data Byte 3
  [7] - reserved
[6:0] - Event/Reading type code (per Table 42-2, Generic Event/Reading Type Codes)

[FreeIPMI]
ipmi-raw 0x00 0x04 0x2e D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
sensor type
(per Table 42-3, Sensor Type Codes)
D[3] Byte 3
Request Data Byte 3
  [7] - reserved
[6:0] - Event/Reading type code (per Table 42-2, Generic Event/Reading Type Codes)

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

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

[ipmiutil in Linux]
$ icmd 00 20 10 2e 0x01 0x02 0x01
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 0x2e 0x01 0x02 0x01
rcvd: 2E 00 Byte 1
Completion Code
00h = Command Completed Normally



Get Sensor Type - NetFn = Sensor/Event (0x04h), CMD = 0x2fh, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x2f D[1] Byte 1
sensor number
(FFh = reserved)

[ipmiutil]
ipmiutil cmd 00 20 10 2f D[1] Byte 1
sensor number
(FFh = reserved)

icmd 00 20 10 2f D[1] Byte 1
sensor number
(FFh = reserved)

[FreeIPMI]
ipmi-raw 0x00 0x04 0x2f D[1] Byte 1
sensor number
(FFh = reserved)

| MS-DOS |
[ipmitool]
ipmitool 20 10 2f Data[1]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x04 0x2f 0x01
 02 Byte 2
sensor type
(per Table 42-3, Sensor Type Codes)
01 Byte 3
Response Data Byte 3
  [7] - reserved.
[6:0] - Event/Reading type code (per Table 42-2, Generic Event/Reading Type Codes)

[ipmiutil in Linux]
$ ipmiutil cmd 00 20 10 2f 41
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]: 02 Byte 2
sensor type
(per Table 42-3, Sensor Type Codes)
01 Byte 3
Response Data Byte 3
  [7] - reserved.
[6:0] - Event/Reading type code (per Table 42-2, Generic Event/Reading Type Codes)

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x04 0x2f 0x13
rcvd: 2F 00 01 01 00 Byte 1
Completion Code
00h = Command Completed Normally
01 Byte 2
sensor type
(per Table 42-3, Sensor Type Codes)
01 Byte 3
Response Data Byte 3
  [7] - reserved.
[6:0] - Event/Reading type code (per Table 42-2, Generic Event/Reading Type Codes)

[ipmitool in DOS]
C:\> ipmitool 20 10 2f 01
20 14 2F 00 02 01


Set Sensor Reading And Event Status - NetFn = Sensor/Event (0x04h), CMD = 0x30h, Privilege Level = Operator, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x04 0x30 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Operation
[7:6] - Event Data Bytes operation
        11b = reserved
        10b = Write given values to event data bytes, excluding bits [3:0] of Event Data 1.
        01b = Write given values to event data bytes, including bits [3:0] of Event Data 1.
        00b = Don't use Event Data bytes from this command.
[5:4] - Assertion bits operation
        11b = A 0b in a given bit position in the given parameter causes corresponding bit position to be cleared.
              A 1b causes no change to the corresponding
        10b = A 1b in a given bit position causes corresponding bit position to be set to 1b.
        01b = write given value to assertion event status bytes
        00b = don't change assertion event status bytes
[3:2] - Deassertion bits operation
        11b = A 0b in a given bit position in the given parameter causes corresponding bit position to be cleared.
              A 1b causes no change to the corresponding
        10b = A 1b in a given bit position causes corresponding bit position to be set to 1b.
        01b = write given value to assertion event status bytes
        00b = don't change assertion event status bytes
[1:0] - Sensor Reading operation
        10b, 11b = reserved
        01b = write given value to sensor reading byte
        00b = don't change sensor reading byte
D[3] Byte 3
Sensor Reading
Byte 1: byte of reading.
(D[4]) (Byte 4)
Request Data Byte 4
For sensors with threshold based events:
(High-going events are asserted when value first becomes threshold.
Lowgoing events are asserted when value first becomes corresponding threshold.)
[7] - 1b = assertion event condition for upper non-critical going high occurred
[6] - 1b = assertion event condition for upper non-critical going low occurred
[5] - 1b = assertion event condition for lower non-recoverable going high occurred
[4] - 1b = assertion event condition for lower non-recoverable going low occurred
[3] - 1b = assertion event condition for lower critical going high occurred
[2] - 1b = assertion event condition for lower critical going low occurred
[1] - 1b = assertion event condition for lower non-critical going high occurred
[0] - 1b = assertion event condition for lower non-critical going low occurred
For sensors with discrete events:
[7] - 1b = state 7 assertion event occurred
[6] - 1b = state 6 assertion event occurred
[5] - 1b = state 5 assertion event occurred
[4] - 1b = state 4 assertion event occurred
[3] - 1b = state 3 assertion event occurred
[2] - 1b = state 2 assertion event occurred
[1] - 1b = state 1 assertion event occurred
[0] - 1b = state 0 assertion event occurred
(D[5]) (Byte 5)
Request Data Byte 5
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = assertion event condition for upper non-recoverable going high occurred
[2] - 1b = assertion event condition for upper non-recoverable going low occurred
[1] - 1b = assertion event condition for upper critical going high occurred
[0] - 1b = assertion event condition for upper critical going low occurred
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = state 14 assertion event occurred
[5] - 1b = state 13 assertion event occurred
[4] - 1b = state 12 assertion event occurred
[3] - 1b = state 11 assertion event occurred
[2] - 1b = state 10 assertion event occurred
[1] - 1b = state 9 assertion event occurred
[0] - 1b = state 8 assertion event occurred
(D[6]) (Byte 6)
Request Data Byte 6
For sensors with threshold based events:
(High-going events are deasserted when value goes less than the corresponding threshold minus the positive-going hysteresis value.
Low-going events are deasserted when value goes greater than the corresponding threshold plus the negative-going hysteresis value.)
[7] - 1b = deassertion event condition for upper non-critical going high occurred
[6] - 1b = deassertion event condition for upper non-critical going low occurred
[5] - 1b = deassertion event condition for lower non-recoverable going high occurred
[4] - 1b = deassertion event condition for lower non-recoverable going low occurred
[3] - 1b = deassertion event condition for lower critical going high occurred
[2] - 1b = deassertion event condition for lower critical going low occurred
[1] - 1b = deassertion event condition for lower non-critical going high occurred
[0] - 1b = deassertion event condition for lower non-critical going low occurred
For sensors with discrete events:
[7] - 1b = state 7 deassertion event occurred
[6] - 1b = state 6 deassertion event occurred
[5] - 1b = state 5 deassertion event occurred
[4] - 1b = state 4 deassertion event occurred
[3] - 1b = state 3 deassertion event occurred
[2] - 1b = state 2 deassertion event occurred
[1] - 1b = state 1 deassertion event occurred
[0] - 1b = state 0 deassertion event occurred
(D[7]) (Byte 7)
Request Data Byte 7
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = deassertion event condition for upper non-recoverable going high occurred
[2] - 1b = deassertion event condition for upper non-recoverable going low occurred
[1] - 1b = deassertion event condition for upper critical going high occurred
[0] - 1b = deassertion event condition for upper critical going low occurred
For sensors with discrete events:
(0h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = state 14 deassertion event occurred
[5] - 1b = state 13 deassertion event occurred
[4] - 1b = state 12 deassertion event occurred
[3] - 1b = state 11 deassertion event occurred
[2] - 1b = state 10 deassertion event occurred
[1] - 1b = state 9 deassertion event occurred
[0] - 1b = state 8 deassertion event occurred
(D[8]) (Byte 8)
Event Data 1
Note: bits 3:0 of Event Data 1 are the event offset.
It is up to the party issuing this command to ensure that any values written to the event offset field are consistent with values written to the Reading and State fields.
The Event Data Bytes operation field in byte 1 of this request can be used to select whether the BMC automatically generates the event offset bits or uses values passed in this byte.
(D[9]) (Byte 9)
Event Data 2
(D[10]) (Byte 10)
Event Data 3

[ipmiutil]
ipmiutil 00 20 10 30 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Operation
[7:6] - Event Data Bytes operation
        11b = reserved
        10b = Write given values to event data bytes, excluding bits [3:0] of Event Data 1.
        01b = Write given values to event data bytes, including bits [3:0] of Event Data 1.
        00b = Don't use Event Data bytes from this command.
[5:4] - Assertion bits operation
        11b = A 0b in a given bit position in the given parameter causes corresponding bit position to be cleared.
              A 1b causes no change to the corresponding
        10b = A 1b in a given bit position causes corresponding bit position to be set to 1b.
        01b = write given value to assertion event status bytes
        00b = don't change assertion event status bytes
[3:2] - Deassertion bits operation
        11b = A 0b in a given bit position in the given parameter causes corresponding bit position to be cleared.
              A 1b causes no change to the corresponding
        10b = A 1b in a given bit position causes corresponding bit position to be set to 1b.
        01b = write given value to assertion event status bytes
        00b = don't change assertion event status bytes
[1:0] - Sensor Reading operation
        10b, 11b = reserved
        01b = write given value to sensor reading byte
        00b = don't change sensor reading byte
D[3] Byte 3
Sensor Reading
Byte 1: byte of reading.
(D[4]) (Byte 4)
Request Data Byte 4
For sensors with threshold based events:
(High-going events are asserted when value first becomes threshold.
Lowgoing events are asserted when value first becomes corresponding threshold.)
[7] - 1b = assertion event condition for upper non-critical going high occurred
[6] - 1b = assertion event condition for upper non-critical going low occurred
[5] - 1b = assertion event condition for lower non-recoverable going high occurred
[4] - 1b = assertion event condition for lower non-recoverable going low occurred
[3] - 1b = assertion event condition for lower critical going high occurred
[2] - 1b = assertion event condition for lower critical going low occurred
[1] - 1b = assertion event condition for lower non-critical going high occurred
[0] - 1b = assertion event condition for lower non-critical going low occurred
For sensors with discrete events:
[7] - 1b = state 7 assertion event occurred
[6] - 1b = state 6 assertion event occurred
[5] - 1b = state 5 assertion event occurred
[4] - 1b = state 4 assertion event occurred
[3] - 1b = state 3 assertion event occurred
[2] - 1b = state 2 assertion event occurred
[1] - 1b = state 1 assertion event occurred
[0] - 1b = state 0 assertion event occurred
(D[5]) (Byte 5)
Request Data Byte 5
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = assertion event condition for upper non-recoverable going high occurred
[2] - 1b = assertion event condition for upper non-recoverable going low occurred
[1] - 1b = assertion event condition for upper critical going high occurred
[0] - 1b = assertion event condition for upper critical going low occurred
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = state 14 assertion event occurred
[5] - 1b = state 13 assertion event occurred
[4] - 1b = state 12 assertion event occurred
[3] - 1b = state 11 assertion event occurred
[2] - 1b = state 10 assertion event occurred
[1] - 1b = state 9 assertion event occurred
[0] - 1b = state 8 assertion event occurred
(D[6]) (Byte 6)
Request Data Byte 6
For sensors with threshold based events:
(High-going events are deasserted when value goes less than the corresponding threshold minus the positive-going hysteresis value.
Low-going events are deasserted when value goes greater than the corresponding threshold plus the negative-going hysteresis value.)
[7] - 1b = deassertion event condition for upper non-critical going high occurred
[6] - 1b = deassertion event condition for upper non-critical going low occurred
[5] - 1b = deassertion event condition for lower non-recoverable going high occurred
[4] - 1b = deassertion event condition for lower non-recoverable going low occurred
[3] - 1b = deassertion event condition for lower critical going high occurred
[2] - 1b = deassertion event condition for lower critical going low occurred
[1] - 1b = deassertion event condition for lower non-critical going high occurred
[0] - 1b = deassertion event condition for lower non-critical going low occurred
For sensors with discrete events:
[7] - 1b = state 7 deassertion event occurred
[6] - 1b = state 6 deassertion event occurred
[5] - 1b = state 5 deassertion event occurred
[4] - 1b = state 4 deassertion event occurred
[3] - 1b = state 3 deassertion event occurred
[2] - 1b = state 2 deassertion event occurred
[1] - 1b = state 1 deassertion event occurred
[0] - 1b = state 0 deassertion event occurred
(D[7]) (Byte 7)
Request Data Byte 7
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = deassertion event condition for upper non-recoverable going high occurred
[2] - 1b = deassertion event condition for upper non-recoverable going low occurred
[1] - 1b = deassertion event condition for upper critical going high occurred
[0] - 1b = deassertion event condition for upper critical going low occurred
For sensors with discrete events:
(0h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = state 14 deassertion event occurred
[5] - 1b = state 13 deassertion event occurred
[4] - 1b = state 12 deassertion event occurred
[3] - 1b = state 11 deassertion event occurred
[2] - 1b = state 10 deassertion event occurred
[1] - 1b = state 9 deassertion event occurred
[0] - 1b = state 8 deassertion event occurred
(D[8]) (Byte 8)
Event Data 1
Note: bits 3:0 of Event Data 1 are the event offset.
It is up to the party issuing this command to ensure that any values written to the event offset field are consistent with values written to the Reading and State fields.
The Event Data Bytes operation field in byte 1 of this request can be used to select whether the BMC automatically generates the event offset bits or uses values passed in this byte.
(D[9]) (Byte 9)
Event Data 2
(D[10]) (Byte 10)
Event Data 3

icmd 00 20 10 30 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Operation
[7:6] - Event Data Bytes operation
        11b = reserved
        10b = Write given values to event data bytes, excluding bits [3:0] of Event Data 1.
        01b = Write given values to event data bytes, including bits [3:0] of Event Data 1.
        00b = Don't use Event Data bytes from this command.
[5:4] - Assertion bits operation
        11b = A 0b in a given bit position in the given parameter causes corresponding bit position to be cleared.
              A 1b causes no change to the corresponding
        10b = A 1b in a given bit position causes corresponding bit position to be set to 1b.
        01b = write given value to assertion event status bytes
        00b = don't change assertion event status bytes
[3:2] - Deassertion bits operation
        11b = A 0b in a given bit position in the given parameter causes corresponding bit position to be cleared.
              A 1b causes no change to the corresponding
        10b = A 1b in a given bit position causes corresponding bit position to be set to 1b.
        01b = write given value to assertion event status bytes
        00b = don't change assertion event status bytes
[1:0] - Sensor Reading operation
        10b, 11b = reserved
        01b = write given value to sensor reading byte
        00b = don't change sensor reading byte
D[3] Byte 3
Sensor Reading
Byte 1: byte of reading.
(D[4]) (Byte 4)
Request Data Byte 4
For sensors with threshold based events:
(High-going events are asserted when value first becomes threshold.
Lowgoing events are asserted when value first becomes corresponding threshold.)
[7] - 1b = assertion event condition for upper non-critical going high occurred
[6] - 1b = assertion event condition for upper non-critical going low occurred
[5] - 1b = assertion event condition for lower non-recoverable going high occurred
[4] - 1b = assertion event condition for lower non-recoverable going low occurred
[3] - 1b = assertion event condition for lower critical going high occurred
[2] - 1b = assertion event condition for lower critical going low occurred
[1] - 1b = assertion event condition for lower non-critical going high occurred
[0] - 1b = assertion event condition for lower non-critical going low occurred
For sensors with discrete events:
[7] - 1b = state 7 assertion event occurred
[6] - 1b = state 6 assertion event occurred
[5] - 1b = state 5 assertion event occurred
[4] - 1b = state 4 assertion event occurred
[3] - 1b = state 3 assertion event occurred
[2] - 1b = state 2 assertion event occurred
[1] - 1b = state 1 assertion event occurred
[0] - 1b = state 0 assertion event occurred
(D[5]) (Byte 5)
Request Data Byte 5
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = assertion event condition for upper non-recoverable going high occurred
[2] - 1b = assertion event condition for upper non-recoverable going low occurred
[1] - 1b = assertion event condition for upper critical going high occurred
[0] - 1b = assertion event condition for upper critical going low occurred
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = state 14 assertion event occurred
[5] - 1b = state 13 assertion event occurred
[4] - 1b = state 12 assertion event occurred
[3] - 1b = state 11 assertion event occurred
[2] - 1b = state 10 assertion event occurred
[1] - 1b = state 9 assertion event occurred
[0] - 1b = state 8 assertion event occurred
(D[6]) (Byte 6)
Request Data Byte 6
For sensors with threshold based events:
(High-going events are deasserted when value goes less than the corresponding threshold minus the positive-going hysteresis value.
Low-going events are deasserted when value goes greater than the corresponding threshold plus the negative-going hysteresis value.)
[7] - 1b = deassertion event condition for upper non-critical going high occurred
[6] - 1b = deassertion event condition for upper non-critical going low occurred
[5] - 1b = deassertion event condition for lower non-recoverable going high occurred
[4] - 1b = deassertion event condition for lower non-recoverable going low occurred
[3] - 1b = deassertion event condition for lower critical going high occurred
[2] - 1b = deassertion event condition for lower critical going low occurred
[1] - 1b = deassertion event condition for lower non-critical going high occurred
[0] - 1b = deassertion event condition for lower non-critical going low occurred
For sensors with discrete events:
[7] - 1b = state 7 deassertion event occurred
[6] - 1b = state 6 deassertion event occurred
[5] - 1b = state 5 deassertion event occurred
[4] - 1b = state 4 deassertion event occurred
[3] - 1b = state 3 deassertion event occurred
[2] - 1b = state 2 deassertion event occurred
[1] - 1b = state 1 deassertion event occurred
[0] - 1b = state 0 deassertion event occurred
(D[7]) (Byte 7)
Request Data Byte 7
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = deassertion event condition for upper non-recoverable going high occurred
[2] - 1b = deassertion event condition for upper non-recoverable going low occurred
[1] - 1b = deassertion event condition for upper critical going high occurred
[0] - 1b = deassertion event condition for upper critical going low occurred
For sensors with discrete events:
(0h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = state 14 deassertion event occurred
[5] - 1b = state 13 deassertion event occurred
[4] - 1b = state 12 deassertion event occurred
[3] - 1b = state 11 deassertion event occurred
[2] - 1b = state 10 deassertion event occurred
[1] - 1b = state 9 deassertion event occurred
[0] - 1b = state 8 deassertion event occurred
(D[8]) (Byte 8)
Event Data 1
Note: bits 3:0 of Event Data 1 are the event offset.
It is up to the party issuing this command to ensure that any values written to the event offset field are consistent with values written to the Reading and State fields.
The Event Data Bytes operation field in byte 1 of this request can be used to select whether the BMC automatically generates the event offset bits or uses values passed in this byte.
(D[9]) (Byte 9)
Event Data 2
(D[10]) (Byte 10)
Event Data 3

[FreeIPMI]
ipmi-raw 0x00 0x04 0x30 D[1] Byte 1
sensor number
(FFh = reserved)
D[2] Byte 2
Operation
[7:6] - Event Data Bytes operation
        11b = reserved
        10b = Write given values to event data bytes, excluding bits [3:0] of Event Data 1.
        01b = Write given values to event data bytes, including bits [3:0] of Event Data 1.
        00b = Don't use Event Data bytes from this command.
[5:4] - Assertion bits operation
        11b = A 0b in a given bit position in the given parameter causes corresponding bit position to be cleared.
              A 1b causes no change to the corresponding
        10b = A 1b in a given bit position causes corresponding bit position to be set to 1b.
        01b = write given value to assertion event status bytes
        00b = don't change assertion event status bytes
[3:2] - Deassertion bits operation
        11b = A 0b in a given bit position in the given parameter causes corresponding bit position to be cleared.
              A 1b causes no change to the corresponding
        10b = A 1b in a given bit position causes corresponding bit position to be set to 1b.
        01b = write given value to assertion event status bytes
        00b = don't change assertion event status bytes
[1:0] - Sensor Reading operation
        10b, 11b = reserved
        01b = write given value to sensor reading byte
        00b = don't change sensor reading byte
D[3] Byte 3
Sensor Reading
Byte 1: byte of reading.
(D[4]) (Byte 4)
Request Data Byte 4
For sensors with threshold based events:
(High-going events are asserted when value first becomes threshold.
Lowgoing events are asserted when value first becomes corresponding threshold.)
[7] - 1b = assertion event condition for upper non-critical going high occurred
[6] - 1b = assertion event condition for upper non-critical going low occurred
[5] - 1b = assertion event condition for lower non-recoverable going high occurred
[4] - 1b = assertion event condition for lower non-recoverable going low occurred
[3] - 1b = assertion event condition for lower critical going high occurred
[2] - 1b = assertion event condition for lower critical going low occurred
[1] - 1b = assertion event condition for lower non-critical going high occurred
[0] - 1b = assertion event condition for lower non-critical going low occurred
For sensors with discrete events:
[7] - 1b = state 7 assertion event occurred
[6] - 1b = state 6 assertion event occurred
[5] - 1b = state 5 assertion event occurred
[4] - 1b = state 4 assertion event occurred
[3] - 1b = state 3 assertion event occurred
[2] - 1b = state 2 assertion event occurred
[1] - 1b = state 1 assertion event occurred
[0] - 1b = state 0 assertion event occurred
(D[5]) (Byte 5)
Request Data Byte 5
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = assertion event condition for upper non-recoverable going high occurred
[2] - 1b = assertion event condition for upper non-recoverable going low occurred
[1] - 1b = assertion event condition for upper critical going high occurred
[0] - 1b = assertion event condition for upper critical going low occurred
For sensors with discrete events:
(00h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = state 14 assertion event occurred
[5] - 1b = state 13 assertion event occurred
[4] - 1b = state 12 assertion event occurred
[3] - 1b = state 11 assertion event occurred
[2] - 1b = state 10 assertion event occurred
[1] - 1b = state 9 assertion event occurred
[0] - 1b = state 8 assertion event occurred
(D[6]) (Byte 6)
Request Data Byte 6
For sensors with threshold based events:
(High-going events are deasserted when value goes less than the corresponding threshold minus the positive-going hysteresis value.
Low-going events are deasserted when value goes greater than the corresponding threshold plus the negative-going hysteresis value.)
[7] - 1b = deassertion event condition for upper non-critical going high occurred
[6] - 1b = deassertion event condition for upper non-critical going low occurred
[5] - 1b = deassertion event condition for lower non-recoverable going high occurred
[4] - 1b = deassertion event condition for lower non-recoverable going low occurred
[3] - 1b = deassertion event condition for lower critical going high occurred
[2] - 1b = deassertion event condition for lower critical going low occurred
[1] - 1b = deassertion event condition for lower non-critical going high occurred
[0] - 1b = deassertion event condition for lower non-critical going low occurred
For sensors with discrete events:
[7] - 1b = state 7 deassertion event occurred
[6] - 1b = state 6 deassertion event occurred
[5] - 1b = state 5 deassertion event occurred
[4] - 1b = state 4 deassertion event occurred
[3] - 1b = state 3 deassertion event occurred
[2] - 1b = state 2 deassertion event occurred
[1] - 1b = state 1 deassertion event occurred
[0] - 1b = state 0 deassertion event occurred
(D[7]) (Byte 7)
Request Data Byte 7
For sensors with threshold based events:
[7:4] - reserved. Write as 0000b.
[3] - 1b = deassertion event condition for upper non-recoverable going high occurred
[2] - 1b = deassertion event condition for upper non-recoverable going low occurred
[1] - 1b = deassertion event condition for upper critical going high occurred
[0] - 1b = deassertion event condition for upper critical going low occurred
For sensors with discrete events:
(0h otherwise)
[7] - reserved. Ignore on read.
[6] - 1b = state 14 deassertion event occurred
[5] - 1b = state 13 deassertion event occurred
[4] - 1b = state 12 deassertion event occurred
[3] - 1b = state 11 deassertion event occurred
[2] - 1b = state 10 deassertion event occurred
[1] - 1b = state 9 deassertion event occurred
[0] - 1b = state 8 deassertion event occurred
(D[8]) (Byte 8)
Event Data 1
Note: bits 3:0 of Event Data 1 are the event offset.
It is up to the party issuing this command to ensure that any values written to the event offset field are consistent with values written to the Reading and State fields.
The Event Data Bytes operation field in byte 1 of this request can be used to select whether the BMC automatically generates the event offset bits or uses values passed in this byte.
(D[9]) (Byte 9)
Event Data 2
(D[10]) (Byte 10)
Event Data 3

| MS-DOS |
[ipmitool]
ipmitool 20 10 30 Data[1:3] (Data[4:10])

--Completion Code--
80h: Attempt to change reading or set or clear status bits that are not settable via this command 81h: Attempted to set Event Data Bytes, but setting Event Data Bytes is not supported for this sensor


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: Jun 6, 2018

No comments:

Post a Comment