Pages

Tuesday, May 14, 2013

[IPMI] SDR Repository Device Commands

[IPMI] SDR Repository Device Commands Get SDR Repository Info - NetFn = Storage (0x0ah), CMD = 0x20h, Privilege Level = User, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x0a 0x20
ipmitool sdr info
[ipmiutil]
ipmiutil cmd 00 20 28 20
icmd 00 20 28 20
[FreeIPMI]
ipmi-raw 0x00 0x0a 0x20
ipmi-sensors --sdr-info
ipmi-sensors -i
| MS-DOS |
[ipmitool]
ipmitool 20 28 20

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x0a 0x20
 51 Byte 2
SDR Version
version number of the SDR command set for the SDR Device 51h for this specification
(BCD encoded with bits 7:4 holding the Least Significant digit of the revision and bits 3:0 holding the Most Significant bits.)
19 Byte 3
Record Count LS Byte
number of records in the SDR Repository
00 Byte 4
Record Count MS Byte
number of records in the SDR Repository
00 22 Byte [5:6]
Free Space in Bytes
LS Byte first
0000h indicates 'full'
FFFEh indicates 64KB-2 or more available
FFFFh indicates 'unspecified'
ff ff ff ff Byte [7:10]
Most Recent Addition Timestamp
LS byte first
00 00 00 00 Byte [11:14]
Most Recent Erase (Delete or Clear) Timestamp
LS byte first
27 Byte 15
Operation Support
  [7] - Overflow Flag
        1 = SDR could not be written due to lack of space in the SDR Repository
[6:5] - 00b = modal/non-modal SDR Repository Update operation unspecified
        01b = non-modal SDR Repository Update operation supported
        10b = modal SDR Repository Update operation supported
        11b = both modal and non-modal SDR Repository Update supported
  [4] - reserved. Write as 0b
  [3] - 1b = Delete SDR command supported
  [2] - 1b = Partial Add SDR command supported
  [1] - 1b = Reserve SDR Repository command supported
  [0] - 1b = Get SDR Repository Allocation Information command supported

$ ipmitool sdr info
SDR Version                         : 0x51
Record Count                        : 25
Free Space                          : 8704 bytes
Most recent Addition                : 02/07/2106 06:28:15
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 28 20
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=14]: 51 Byte 2
SDR Version
version number of the SDR command set for the SDR Device 51h for this specification
(BCD encoded with bits 7:4 holding the Least Significant digit of the revision and bits 3:0 holding the Most Significant bits.)
19 Byte 3
Record Count LS Byte
number of records in the SDR Repository
00 Byte 4
Record Count MS Byte
number of records in the SDR Repository
00 22 Byte [5:6]
Free Space in Bytes
LS Byte first
0000h indicates 'full'
FFFEh indicates 64KB-2 or more available
FFFFh indicates 'unspecified'
ff ff ff ff Byte [7:10]
Most Recent Addition Timestamp
LS byte first
00 00 00 00 Byte [11:14]
Most Recent Erase (Delete or Clear) Timestamp
LS byte first
27 Byte 15
Operation Support
  [7] - Overflow Flag
        1 = SDR could not be written due to lack of space in the SDR Repository
[6:5] - 00b = modal/non-modal SDR Repository Update operation unspecified
        01b = non-modal SDR Repository Update operation supported
        10b = modal SDR Repository Update operation supported
        11b = both modal and non-modal SDR Repository Update supported
  [4] - reserved. Write as 0b
  [3] - 1b = Delete SDR command supported
  [2] - 1b = Partial Add SDR command supported
  [1] - 1b = Reserve SDR Repository command supported
  [0] - 1b = Get SDR Repository Allocation Information command supported

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x0a 0x20
rcvd: 20 00 Byte 1
Completion Code
00h = Command Completed Normally
51 Byte 2
SDR Version
version number of the SDR command set for the SDR Device 51h for this specification
(BCD encoded with bits 7:4 holding the Least Significant digit of the revision and bits 3:0 holding the Most Significant bits.)
19 Byte 3
Record Count LS Byte
number of records in the SDR Repository
00 Byte 4
Record Count MS Byte
number of records in the SDR Repository
00 22 Byte [5:6]
Free Space in Bytes
LS Byte first
0000h indicates 'full'
FFFEh indicates 64KB-2 or more available
FFFFh indicates 'unspecified'
FF FF FF FF Byte [7:10]
Most Recent Addition Timestamp
LS byte first
00 00 00 00 Byte [11:14]
Most Recent Erase (Delete or Clear) Timestamp
LS byte first
27 Byte 15
Operation Support
  [7] - Overflow Flag
        1 = SDR could not be written due to lack of space in the SDR Repository
[6:5] - 00b = modal/non-modal SDR Repository Update operation unspecified
        01b = non-modal SDR Repository Update operation supported
        10b = modal SDR Repository Update operation supported
        11b = both modal and non-modal SDR Repository Update supported
  [4] - reserved. Write as 0b
  [3] - 1b = Delete SDR command supported
  [2] - 1b = Partial Add SDR command supported
  [1] - 1b = Reserve SDR Repository command supported
  [0] - 1b = Get SDR Repository Allocation Information command supported

$ ipmi-sensors --sdr-info
$ ipmi-sensors -i
SDR version                                       : 1.5
SDR record count                                  : 25
Free space remaining                              : 8704 bytes
Most recent addition timestamp                    : Unspecified
Most recent erase timestamp                       : Post-Init 0 s
Get SDR Repository Allocation Information Command : supported
Reserve SDR Repository Command                    : supported
Partial Add SDR Command                           : supported
Delete SDR Command                                : unsupported
Modal/non-modal SDR Repository Update operation   : non-Modal supported
SDR could not be written due to lack of space     : No
Number of possible allocation units               : 639
Allocation unit size                              : 16 bytes
Number of free allocation units                   : 544
Largest free block                                : 544 allocation units
Maximum record size                               : 8 allocation units


Get SDR Repository Allocation Info - NetFn = Storage (0x0ah), CMD = 0x21h, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x0a 0x21
[ipmiutil]
ipmiutil cmd 00 20 28 21
icmd 00 20 28 21
[FreeIPMI]
ipmi-raw 0x00 0x0a 0x21
| MS-DOS |
[ipmitool]
ipmitool 20 28 21

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x0a 0x21
 7f Byte 2
Number of possible allocation units
LS Byte
This number indicates whether the total number of possible allocation units is equal to, or some number less than the log size divided by the allocation unit size
0000h indicates 'unspecified'
02 Byte 3
Number of possible allocation units
MS Bytes
This number indicates whether the total number of possible allocation units is equal to, or some number less than the log size divided by the allocation unit size
0000h indicates 'unspecified'
10 00 Byte [4:5]
Allocation unit size in bytes
0000h indicates 'unspecified'
20 Byte 6
Number of free allocation units
LS Byte
02 Byte 7
Number of free allocation units
MS Byte
20 Byte 8
Largest free block in allocation units
LS Byte
02 Byte 9
Largest free block in allocation units
MS Byte
08 Byte 10
Maximum record size in allocation units.

[ipmiutil in Linux]
$ icmd 00 20 28 21
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=9]: 7f Byte 2
Number of possible allocation units
LS Byte
This number indicates whether the total number of possible allocation units is equal to, or some number less than the log size divided by the allocation unit size
0000h indicates 'unspecified'
02 Byte 3
Number of possible allocation units
MS Bytes
This number indicates whether the total number of possible allocation units is equal to, or some number less than the log size divided by the allocation unit size
0000h indicates 'unspecified'
10 00 Byte [4:5]
Allocation unit size in bytes
0000h indicates 'unspecified'
20 Byte 6
Number of free allocation units
LS Byte
02 Byte 7
Number of free allocation units
MS Byte
20 Byte 8
Largest free block in allocation units
LS Byte
02 Byte 9
Largest free block in allocation units
MS Byte
08 Byte 10
Maximum record size in allocation units.

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x0a 0x21 rcvd: 21 00 Byte 1
Completion Code
00h = Command Completed Normally
7F Byte 2
Number of possible allocation units
LS Byte
This number indicates whether the total number of possible allocation units is equal to, or some number less than the log size divided by the allocation unit size
0000h indicates 'unspecified'
02 Byte 3
Number of possible allocation units
MS Bytes
This number indicates whether the total number of possible allocation units is equal to, or some number less than the log size divided by the allocation unit size
0000h indicates 'unspecified'
10 00 Byte [4:5]
Allocation unit size in bytes
0000h indicates 'unspecified'
20 Byte 6
Number of free allocation units
LS Byte
02 Byte 7
Number of free allocation units
MS Byte
20 Byte 8
Largest free block in allocation units
LS Byte
02 Byte 9
Largest free block in allocation units
MS Byte
08 Byte 10
Maximum record size in allocation units.

$ ipmi-sensors -i
$ ipmi-sensors --sdr-info
SDR version                                       : 1.5
SDR record count                                  : 25
Free space remaining                              : 8704 bytes
Most recent addition timestamp                    : Unspecified
Most recent erase timestamp                       : Post-Init 0 s
Get SDR Repository Allocation Information Command : supported
Reserve SDR Repository Command                    : supported
Partial Add SDR Command                           : supported
Delete SDR Command                                : unsupported
Modal/non-modal SDR Repository Update operation   : non-Modal supported
SDR could not be written due to lack of space     : No
Number of possible allocation units               : 639
Allocation unit size                              : 16 bytes
Number of free allocation units                   : 544
Largest free block                                : 544 allocation units
Maximum record size                               : 8 allocation units


Reserve SDR Repository - NetFn = Storage (0x0ah), CMD = 0x22h, Privilege Level = User, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x0a 0x22
[ipmiutil]
ipmiutil cmd 00 20 28 22
icmd 00 20 28 22
[FreeIPMI]
ipmi-raw 0x00 0x0a 0x22
| MS-DOS |
[ipmitool]
ipmitool 20 28 22

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x0a 0x22
 01 Byte 2
Reservation ID
LS Byte
5f Byte 3
Reservation ID
MS Byte

[ipmiutil in Linux]
$ icmd 00 20 28 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]: 7e Byte 2
Reservation ID
LS Byte
c6 Byte 3
Reservation ID
MS Byte

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



Get SDR - NetFn = Storage (0x0ah), CMD = 0x23h, Privilege Level = User, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x0a 0x23 D[1] Byte 1
Reservation ID
LS Byte
Only required for partial reads with a nonzero '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 nonzero 'Offset into record' field
Use 0000h for reservation ID otherwise
D[3] Byte 3
Record ID of record to Get
LS Byte
D[4] Byte 4
Record ID of record to Get
MS Byte
D[5] Byte 5
Offset into record
D[6] Byte 6
Bytes to read
FFh means read entire record

ipmitool sdr
ipmitool sdr list|elist [all|full|compact|event|mcloc|fru|generic]
ipmitool sdr get <Sensor_ID>
[ipmiutil]
ipmiutil cmd 00 20 28 23 D[1] Byte 1
Reservation ID
LS Byte
Only required for partial reads with a nonzero '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 nonzero 'Offset into record' field
Use 0000h for reservation ID otherwise
D[3] Byte 3
Record ID of record to Get
LS Byte
D[4] Byte 4
Record ID of record to Get
MS Byte
D[5] Byte 5
Offset into record
D[6] Byte 6
Bytes to read
FFh means read entire record

icmd 00 20 28 23 D[1] Byte 1
Reservation ID
LS Byte
Only required for partial reads with a nonzero '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 nonzero 'Offset into record' field
Use 0000h for reservation ID otherwise
D[3] Byte 3
Record ID of record to Get
LS Byte
D[4] Byte 4
Record ID of record to Get
MS Byte
D[5] Byte 5
Offset into record
D[6] Byte 6
Bytes to read
FFh means read entire record

ipmiutil sensor
isensor
[FreeIPMI]
ipmi-raw 0x00 0x0a 0x23 D[1] Byte 1
Reservation ID
LS Byte
Only required for partial reads with a nonzero '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 nonzero 'Offset into record' field
Use 0000h for reservation ID otherwise
D[3] Byte 3
Record ID of record to Get
LS Byte
D[4] Byte 4
Record ID of record to Get
MS Byte
D[5] Byte 5
Offset into record
D[6] Byte 6
Bytes to read
FFh means read entire record

ipmi-sensors
| MS-DOS |
[ipmitool]
ipmitool 20 28 23 Data[1:6]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x0a 0x23 0x00 0x00 0xff 0x0ff 0x00 0x0e
 ff Byte 2
Record ID for next record
LS Byte
ff Byte 3
Record ID for next record
MS Byte
19 00 51 12 18 20 00 00 ff 00 00 00 00 01 Byte [4:N]
Record Data

$ ipmitool sdr
TEMP_ENV         | 37 degrees C      | ok
Watchdog2        | 0x00              | ok
$ ipmitool sdr elist
TEMP_ENV         | 13h | ok  |  3.0 | 37 degrees C
Watchdog2        | E0h | ok  |  7.2 |
$ ipmitool sdr get TEMP_ENV
Sensor ID              : TEMP_ENV (0x13)
 Entity ID             : 3.0 (Processor)
 Sensor Type (Threshold)  : Temperature (0x01)
 Sensor Reading        : 37 (+/- 1) degrees C
 Status                : ok
 Nominal Reading       : 56.000
 Normal Minimum        : 6.000
 Normal Maximum        : 74.000
 Upper non-recoverable : 80.000
 Upper critical        : 78.000
 Upper non-critical    : 75.000
 Lower non-recoverable : 0.000
 Lower critical        : 2.000
 Lower non-critical    : 5.000
 Positive Hysteresis   : Unspecified
 Negative Hysteresis   : Unspecified
 Minimum sensor range  : Unspecified
 Maximum sensor range  : Unspecified
 Event Message Control : Per-threshold
 Readable Thresholds   : lnr lcr lnc unc ucr unr
 Settable Thresholds   : lnr lcr lnc unc ucr unr
 Threshold Read Mask   : lnr lcr lnc unc ucr unr
 Assertion Events      :
 Assertions Enabled    : lnc- lcr- lnr- unc+ ucr+ unr+
 Deassertions Enabled  : lnc- lcr- lnr- unc+ ucr+ unr+
[ipmiutil in Linux]
$ icmd 00 20 28 23 00 00 13 00 00 0f
ipmiutil cmd ver 3.10
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=17]: 14 Byte 2
Record ID for next record
LS Byte
00 Byte 3
Record ID for next record
MS Byte
13 00 51 01 33 20 00 b4 07 01 7f 68 04 01 95 Byte [4:N]
Record Data

send_icmd ret = 0
ipmiutil cmd, completed successfully
$ isensor -c
ipmiutil sensor version 3.10
-- BMC version 1.07, IPMI version 2.0
 ID  | SDRType | Type            |SNum| Name             |Status| Reading
0002 | Full    | Temperature     | 13 | TEMP_ENV         | OK   | 37.00 C
0018 | Compact | Watchdog_2      | e0 | Watchdog2        | OK   |
ipmiutil sensor, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x0a 0x23 0x00 0x00 0x13 0x00 0x00 0x0f
rcvd: 23 00 Byte 1
Completion Code
00h = Command Completed Normally
14 Byte 2
Record ID for next record
LS Byte
00 Byte 3
Record ID for next record
MS Byte
13 00 51 01 33 20 00 B4 07 01 7F 68 04 01 95 Byte [4:N]
Record Data

$ ipmi-sensors
ID | Name        | Type        | Reading    | Units | Event
2  | TEMP_ENV    | Temperature | 37.00      | C     | 'OK'
24 | Watchdog2   | Watchdog 2  | N/A        | N/A   | 'OK'


Add SDR - NetFn = Storage (0x0ah), CMD = 0x24h, Privilege Level = Operator, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x0a 0x24 D[1:N] Byte [1:N]
SDR Data

[ipmiutil]
ipmiutil cmd 00 20 28 24 D[1:N] Byte [1:N]
SDR Data

icmd 00 20 28 24 D[1:N] Byte [1:N]
SDR Data

[FreeIPMI]
ipmi-raw 0x00 0x0a 0x24 D[1:N] Byte [1:N]
SDR Data

| MS-DOS |
[ipmitool]
ipmitool 20 28 24 Data[1:N]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x0a 0x22
 3c c1
$ ipmitool raw 0x0a 0x24 0x3c 0xc1 0x01 0x02 0x03 0x04 0x05 0x06
 1a Byte 2
Record ID for added record
LS Byte
00 Byte 3
Record ID for added record
MS Byte

[ipmiutil in Linux]
$ icmd 00 20 28 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]: 94 c7
send_icmd ret = 0
ipmiutil cmd, completed successfully
$ icmd 00 20 28 24 94 c7 01 02 03 04 05 06
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]: 1b 00 1b Byte 2
Record ID for added record
LS Byte
00 Byte 3
Record ID for added record
MS Byte

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x0a 0x22
rcvd: 22 00 D8 0F
$ ipmi-raw 0x00 0x0a 0x24 0xd8 0x0f 0x01 0x02 0x03 0x04 0x05 0x06
rcvd: 24 00 Byte 1
Completion Code
00h = Command Completed Normally
1C Byte 2
Record ID for added record
LS Byte
00 Byte 3
Record ID for added record
MS Byte



Partial Add SDR - NetFn = Storage (0x0ah), CMD = 0x25h, Privilege Level = Operator, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x0a 0x25 D[1] Byte 1
Reservation ID
LS Byte
D[2] Byte 2
Reservation ID
MS Byte
D[3] Byte 3
Record ID
LS Byte for continuing partial add
Use 0000h for Record ID otherwise
D[4] Byte 4
Record ID
MS Byte for continuing partial add
Use 0000h for Record ID otherwise
D[5] Byte 5
Offset into record

D[6] Byte 6
In progress
[7:4] - reserved
[3:0] - in progress
        0h = partial add in progress
        1h = last record data being transferred with this request
D[7:N] Byte [7:N]
SDR Record Data

[ipmiutil]
ipmiutil cmd 00 20 28 25 D[1] Byte 1
Reservation ID
LS Byte
D[2] Byte 2
Reservation ID
MS Byte
D[3] Byte 3
Record ID
LS Byte for continuing partial add
Use 0000h for Record ID otherwise
D[4] Byte 4
Record ID
MS Byte for continuing partial add
Use 0000h for Record ID otherwise
D[5] Byte 5
Offset into record

D[6] Byte 6
In progress
[7:4] - reserved
[3:0] - in progress
        0h = partial add in progress
        1h = last record data being transferred with this request
D[7:N] Byte [7:N]
SDR Record Data

icmd 00 20 28 25 ipmitool raw 0x0a 0x25 D[1] Byte 1
Reservation ID
LS Byte
D[2] Byte 2
Reservation ID
MS Byte
D[3] Byte 3
Record ID
LS Byte for continuing partial add
Use 0000h for Record ID otherwise
D[4] Byte 4
Record ID
MS Byte for continuing partial add
Use 0000h for Record ID otherwise
D[5] Byte 5
Offset into record

D[6] Byte 6
In progress
[7:4] - reserved
[3:0] - in progress
        0h = partial add in progress
        1h = last record data being transferred with this request
D[7:N] Byte [7:N]
SDR Record Data

[FreeIPMI]
ipmi-raw 0x00 0x0a 0x25 ipmitool raw 0x0a 0x25 D[1] Byte 1
Reservation ID
LS Byte
D[2] Byte 2
Reservation ID
MS Byte
D[3] Byte 3
Record ID
LS Byte for continuing partial add
Use 0000h for Record ID otherwise
D[4] Byte 4
Record ID
MS Byte for continuing partial add
Use 0000h for Record ID otherwise
D[5] Byte 5
Offset into record

D[6] Byte 6
In progress
[7:4] - reserved
[3:0] - in progress
        0h = partial add in progress
        1h = last record data being transferred with this request
D[7:N] Byte [7:N]
SDR Record Data

| MS-DOS |
[ipmitool]
ipmitool 20 28 25 Data[1:N]

--Completion Code--
80h = Record rejected due to mismatch between record length in header data and number of bytes written
(Verifying the length is an optional operation for the management controller)


Delete SDR - NetFn = Storage (0x0ah), CMD = 0x26h, Privilege Level = Operator, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x0a 0x26 D[1] Byte 1
Reservation ID
LS Byte
D[2] Byte 2
Reservation ID
MS Byte
D[3] Byte 3
Record ID of record to delete
LS Byte
D[4] Byte 4
Record ID of record to delete
MS Byte

[ipmiutil]
ipmiutil cmd 00 20 28 26 D[1] Byte 1
Reservation ID
LS Byte
D[2] Byte 2
Reservation ID
MS Byte
D[3] Byte 3
Record ID of record to delete
LS Byte
D[4] Byte 4
Record ID of record to delete
MS Byte

icmd 00 20 28 26 D[1] Byte 1
Reservation ID
LS Byte
D[2] Byte 2
Reservation ID
MS Byte
D[3] Byte 3
Record ID of record to delete
LS Byte
D[4] Byte 4
Record ID of record to delete
MS Byte

[FreeIPMI]
ipmi-raw 0x00 0x0a 0x26 D[1] Byte 1
Reservation ID
LS Byte
D[2] Byte 2
Reservation ID
MS Byte
D[3] Byte 3
Record ID of record to delete
LS Byte
D[4] Byte 4
Record ID of record to delete
MS Byte

| MS-DOS |
[ipmitool]
ipmitool 20 28 26 Data[1:4]


Clear SDR Repository - NetFn = Storage (0x0ah), CMD = 0x27h, Privilege Level = Operator, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x0a 0x27 D[1] Byte 1
Reservation ID
LS Byte
D[2] Byte 2
Reservation ID
MS Byte
D[3] Byte 3
'C' (43h)

D[4] Byte 4
'L' (4Ch)

D[5] Byte 5
'R' (52h)

D[6] Byte 6
Request Data Byte 6
AAh = initiate erase
00h = get erasure status

[ipmiutil]
ipmiutil 00 20 28 27 D[1] Byte 1
Reservation ID
LS Byte
D[2] Byte 2
Reservation ID
MS Byte
D[3] Byte 3
'C' (43h)

D[4] Byte 4
'L' (4Ch)

D[5] Byte 5
'R' (52h)

D[6] Byte 6
Request Data Byte 6
AAh = initiate erase
00h = get erasure status

icmd 00 20 28 27 D[1] Byte 1
Reservation ID
LS Byte
D[2] Byte 2
Reservation ID
MS Byte
D[3] Byte 3
'C' (43h)

D[4] Byte 4
'L' (4Ch)

D[5] Byte 5
'R' (52h)

D[6] Byte 6
Request Data Byte 6
AAh = initiate erase
00h = get erasure status

[FreeIPMI]
ipmi-raw 0x00 0x0a 0x27 D[1] Byte 1
Reservation ID
LS Byte
D[2] Byte 2
Reservation ID
MS Byte
D[3] Byte 3
'C' (43h)

D[4] Byte 4
'L' (4Ch)

D[5] Byte 5
'R' (52h)

D[6] Byte 6
Request Data Byte 6
AAh = initiate erase
00h = get erasure status

| MS-DOS |
[ipmitool]
ipmitool 20 28 27 Data[1:6]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x0a 0x22
 bb 26
$ ipmitool raw 0x0a 0x27 0xbb 0x26 0x43 0x4c 0x52 0x00
 01 Byte 2
Erasure progress
[7:4] - reserved
[3:0] - erasure in progress
        0h = erasure in progress
        1h = erase completed

[ipmiutil in Linux]
$ icmd 00 20 28 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]: 67 45
send_icmd ret = 0
ipmiutil cmd, completed successfully
$ icmd 00 20 28 27 67 45 43 4c 52 00
ipmiutil cmd ver 3.10
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=1]: 01 Byte 2
Erasure progress
[7:4] - reserved
[3:0] - erasure in progress
        0h = erasure in progress
        1h = erase completed

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x0a 0x22
rcvd: 22 00 C6 23
$ ipmi-raw 0x00 0x0a 0x27 0xc6 0x23 0x43 0x4c 0x52 0x00
rcvd: 27 00 Byte 1
Completion Code
00h = Command Completed Normally
01 Byte 2
Erasure progress
[7:4] - reserved
[3:0] - erasure in progress
        0h = erasure in progress
        1h = erase completed



Get SDR Repository Time - NetFn = Storage (0x0ah), CMD = 0x28h, Privilege Level = User, M/O = O/M
| Linux |
[IPMItool]
ipmitool raw 0x0a 0x28
[ipmiutil]
ipmiutil cmd 00 20 28 28
icmd 00 20 28 28
[FreeIPMI]
ipmi-raw 0x00 0x0a 0x28
| MS-DOS |
[ipmitool]
ipmitool 20 28 28

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x0a 0x28
 95 92 06 5b Byte [2:5]
Time in four-byte format
LS byte first

[ipmiutil in Linux]
$ icmd 00 20 28 28
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]: ff 93 06 5b Byte [2:5]
Time in four-byte format
LS byte first

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x0a 0x28
rcvd: 28 00 Byte 1
Completion Code
00h = Command Completed Normally
50 94 06 5B Byte [2:5]
Time in four-byte format
LS byte first



Set SDR Repository Time - NetFn = Storage (0x0ah), CMD = 0x29h, Privilege Level = Operator, M/O = O/M
| Linux |
[IPMItool]
ipmitool raw 0x0a 0x29 D[1:4] Byte [1:4]
Time in four-byte format
LS byte first

[ipmiutil]
ipmiutil cmd 00 20 28 29 D[1:4] Byte [1:4]
Time in four-byte format
LS byte first

icmd 00 20 28 29 D[1:4] Byte [1:4]
Time in four-byte format
LS byte first

[FreeIPMI]
ipmi-raw 0x00 0x0a 0x29 D[1:4] Byte [1:4]
Time in four-byte format
LS byte first

| MS-DOS |
[ipmitool]
ipmitool 20 28 29 Data[1:4]


Enter SDR Repository Update Mode - NetFn = Storage (0x0ah), CMD = 0x2Ah, Privilege Level = Operator, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x0a 0x2a
[ipmiutil]
ipmiutil cmd 00 20 28 2a
icmd 00 20 28 2a
[FreeIPMI]
ipmi-raw 0x00 0x0a 0x2a
| MS-DOS |
[ipmitool]
ipmitool 20 28 2a


Exit SDR Repository Update Mode - NetFn = Storage (0x0ah), CMD = 0x2Bh, Privilege Level = Operator, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x0a 0x2b
[ipmiutil]
ipmiutil cmd 00 20 28 2b
icmd 00 20 28 2b
[FreeIPMI]
ipmi-raw 0x00 0x0a 0x2b
| MS-DOS |
[ipmitool]
ipmitool 20 28 2b


Run Initialization Agent - NetFn = Storage (0x0ah), CMD = 0x2Ch, Privilege Level = Operator, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x0a 0x2c D[1] Byte 1
Request Data Byte 1
[7:1] - reserved
  [0] - 1b = run initialization agent
        0b = get status of initialization agent process

[ipmiutil]
ipmiutil cmd 00 20 28 2c D[1] Byte 1
Request Data Byte 1
[7:1] - reserved
  [0] - 1b = run initialization agent
        0b = get status of initialization agent process

icmd 00 20 28 2c D[1] Byte 1
Request Data Byte 1
[7:1] - reserved
  [0] - 1b = run initialization agent
        0b = get status of initialization agent process

[FreeIPMI]
ipmi-raw 0x00 0x0a 0x2c D[1] Byte 1
Request Data Byte 1
[7:1] - reserved
  [0] - 1b = run initialization agent
        0b = get status of initialization agent process

| MS-DOS |
[ipmitool]
ipmitool 20 28 2c 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 0x0a 0x2c 0x01
 01 Byte 2
Response Data Byte 2
[7:1] reserved
  [0] - 1b = initialization completed
        0b = initialization in progress

[ipmiutil in Linux]
$ icmd 00 20 28 2c 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=1]: 01 Byte 2
Response Data Byte 2
[7:1] reserved
  [0] - 1b = initialization completed
        0b = initialization in progress

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x0a 0x2c 0x01
rcvd: 2C 00 Byte 1
Completion Code
00h = Command Completed Normally
01 Byte 2
Response Data Byte 2
[7:1] reserved
  [0] - 1b = initialization completed
        0b = initialization in progress



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

Last Updated: May 31, 2018

No comments:

Post a Comment