NAI Power Supplies Intelligent Platform Management (IPMI) Guide

VPX-PS-IPMI-A001

VPX Power Supply Reference I2C Commands

  1. GENERAL INFORMATION AND SLAVE COMMANDS

1.1. Slave System Overview

When in slave mode, the module will respond to slave commands. This system is based on the I2C request and response system. By sending a command the unit recognizes, the unit will perform an action, by preparing a response or changing a status register. After the command has been sent, if the command contained a response, can be viewed by prompting a read on the unit. A list of recognizable commands can be seen on table [1.3]. 1.2. Slave System Data Transaction

The following shows a formulated slave command request and the response.

Request Data:

Byte 0Byte 1Bytes 2..(N-1)Byte N
Receiver Slave AddressCommandDataChecksum

Response Data:

Byte 0Byte 1Bytes 2..(N-1)Byte N
Requester Slave AddressCommand EchoDataChecksum

1.3. Command List

Below is the list of commands the PSM will respond to. These commands follow the slave system data transaction listed in [1.2].

Command NumberNameDescription
‘21’hComposite SensorReturns monitored sensor data. Data is continually scanned and available for report.
‘55’hWrite Status DataWrites status byte on composite sensor.
‘52’hAdvanced ResetPerforms a reset on the module.
‘44’hRead Firmware ReleaseReturns the release date on the firmware.
‘45’hRead I2C AddressReturns the module’s slave address.

1.3.1. Composite Sensor – Command ‘21’h

Request Byte #Expected DataDescription
1‘21’hCommand.
2‘DF’hValue required to make the sum of bytes [1:1] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
1‘21’hCommand echo.
2‘XX’hStatus of unit, refer to table below.
3-4‘XX XX’hTemperature °C = (((Byte 3) * 256) + Byte 4)) * 100 / 16384.
5-6‘XX XX’hVoltage on VS1, full-scale reading = 16384.
7-8‘XX XX’hVoltage on VS2, full-scale reading = 16384.
9-10‘XX XX’hVoltage on VS3, full-scale reading = 16384.
11-12‘XX XX’hVoltage on 3.3A, full-scale reading = 16384.
13-14‘XX XX’hVoltage on +12A, full-scale reading = 16384.
15-16‘XX XX’hVoltage on -12A, full-scale reading = 16384.
17-18‘XX XX’hCurrent on VS1, full-scale reading = 16384.
19-20’XX XX’hCurrent on VS2, full-scale reading = 16384.
21-22‘XX XX’hCurrent on VS3, full-scale reading = 16384.
23-24‘XX XX’hCurrent on 3.3A, full-scale reading = 16384.
25-26‘XX XX’hCurrent on +12A, full-scale reading = 16384.
27-28‘XX XX’hCurrent on -12A, full-scale reading = 16384.
29-30‘XX XX’hVoltage on 2.5 internal reference, 2.5V = 16384.
31-32‘XX XX’hVoltage on input, full-scale reading = 16384.
33-52‘XX XX …‘hPart number, ASCII.
53-54‘XX XX’hSerial number, high.
55-56‘XX XX’hSerial number, low.
57-58’XX XX’hDate code. ((Byte 57) * 100) + (Byte 58) = YY/WW
59-60‘XX XX’hHardware revision.
61-62‘XX XX’hFirmware revision.
63‘XX’hRESERVED.
64‘XX’hValue required to make the sum of bytes [1:63] add to a multiple of 256. [ZERO CHECKSUM]

1.3.1.1. Status Register Byte

76543210
R/WR/WR/WR/WR/WR/WRR
BTLSFAILOTPRIORITY*SW IN*SW EN*HW IN*HW EN

Bit 7, BTLS, is BATTLESHORT. Setting BATTLESHORT will prevent the over-temperature shutdown routine to not occur. The over-temperature field will still be cleared if over-temperature criteria is met. This command will prevent over-temperature shut down and take the unit out of over-temperature shutdown. BATTLESHORT defaults to low at start up.

Bit 6 is FAIL. This field can be set and will be latched low on any detected fault condition, such as an overvoltage or short circuit. The fail latch and be reset by setting the field by writing the status of the unit. FAIL defaults to high at start up.

Bit 5, OT, is OVERTEMPERATURE. Similar to the FAIL field, OT can be set high and will be latched low if the PSM temperature has reached a critical operating threshold. A set field indicates a PSM operating within normal temperatures. Before reaching over-temperature shutdown, the unit will warn it has reached critical operating temperature approximately 15°C before the over-temperature shutdown value by clearing the OT bit. OT defaults to high at start up.

Bit 4 is PRIORITY. This bit indicates which INHIBIT and ENABLE signals control the unit. Setting PRIORITY to be high will allow the SW INIHIBT and SW ENABLE to control the PSM, while clearing PRIORITY will allow HW INHIBIT and HW ENABLE* to control the PSM. SW INIHIBIT and SW ENABLE have no external connections and must be set by writing the status of the unit. HW INIHIBIT and HW ENABLE* are read only and have external connections that set or clear the bits. PRIORITY defaults to low at start up.

Bits 3 to 0 correspond to inhibit and enable behavior, as described in the table below.

PRIORITY*SW INIHIBIT*SW ENABLE*HW INHIBIT*HW ENABLE1OUTPUTS
0XX00Inhibited (3.3Aux ONLY)
0XX10ON
0XX01OFF
0XX11OFF
100XXInhibited (3.3Aux ONLY)
110XXON
101XXOFF
111XXOFF

1 HW ENABLE will switch PRIORITY low when set, effectively switching to HW PRIORITY.

1.3.1.2. Full-scale Reading

Units often vary between the outputs they produce by the voltage created and current-ratings supported. Because of this, full-scale is used as a term explaining a nominal rating for a module output parameter. As an example, the table below shows data from a ‘VPX55H-31AAAA-00’ and the translated indicated values. To understand what full-scale reading means on other units, please refer to their corresponding specification documents.

Response Byte #Expected DataDescription
5-6‘XX XX’hVoltage on VS1, full-scale reading: 12V = 16384.
7-8‘XX XX’hVoltage on VS2, full-scale reading: 3.3V = 16384.
9-10‘XX XX’hVoltage on VS3, full-scale reading: 5V = 16384.
11-12‘XX XX’hVoltage on 3.3A, full-scale reading: 3.3V = 16384.
13-14‘XX XX’hVoltage on +12A, full-scale reading: 12V = 16384.
15-16‘XX XX’hVoltage on -12A, full-scale reading: -12V = 16384.
17-18‘XX XX’hCurrent on VS1, full-scale reading: 30A = 16384.
19-20’XX XX’hCurrent on VS2, full-scale reading: 20A = 16384.
21-22‘XX XX’hCurrent on VS3, full-scale reading: 40A = 16384.
23-24‘XX XX’hCurrent on 3.3A, full-scale reading: 4A = 16384.
25-26‘XX XX’hCurrent on +12A, full-scale reading: 1A = 16384.
27-28‘XX XX’hCurrent on -12A, full-scale reading: 1A = 16384.
29-30‘XX XX’hVoltage on 2.5 internal reference, 2.5V = 16384.
31-32‘XX XX’hVoltage on input, full-scale reading: 28V = 16384.

1.3.2. Write Status Data – Command ‘55’h

Request Byte #Expected DataDescription
1‘55’hCommand.
2‘XX’hStatus byte data.
3‘XX’hValue required to make the sum of bytes [1:2] add to a multiple of 256. [ZERO CHECKSUM]

An example transaction is shown below:

55h 78h 33h

55h refers to the command ‘write status data.’

78h refers to the data overwritten in the status register, the byte translates as follows

7: 0 Battleshort not enabled, over-temperature routines will still occur.

6: 1 Fail signal set, will be cleared and latched low if failure occurs.

5: 1 Over-temperature signal set, will be cleared and latched low if failure occurs.

4: 1 Software has priority to enable/disable the unit.

3: 1 *SW Inhibit is set.

2: 0 *SW Enable is cleared.

1: 0 *HW Inhibit is ignored.

0: 0 *HW Enable is ignored.

33h refers to the checksum value needed to make the command add up to a value of 256.

1.3.3. Advanced Reset – Command ‘52’h

Reset will perform a processor reset on the power supply. Reset will only occur if the unit has PRIORITY cleared.

Request Byte #Expected DataDescription
1‘52’hCommand, ‘R’ ASCII.
2‘45’hCommand, ‘E’ ASCII.
3‘53’hCommand, ‘S’ ASCII.
4‘45’hCommand, ‘E’ ASCII.
5‘54’hCommand, ‘T’ ASCII.
6‘7D’hValue required to make the sum of bytes [1:5] add to a multiple of 256. [ZERO CHECKSUM]

1.3.4. Read Firmware Release Date – Command ‘44’h

Read Firmware Release Date will return the compile date on the firmware installed on the power supply module, in the order of month, day, and year respectively.

Request Byte #Expected DataDescription
1‘44’hCommand.
2‘BC’hValue required to make the sum of bytes [1:1] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
1‘44’hCommand echo.
2-21‘XX XX …‘hDate, ASCII.
22‘XX’hValue required to make the sum of bytes [1:21] add to a multiple of 256. [ZERO CHECKSUM]

1.3.5. Read I2C Address – Command ‘45’h

Read I2C address will return the module’s address, this function can be called globally to determine the actual address of the module.

Request Byte #Expected DataDescription
1‘45’hCommand.
2‘BB’hValue required to make the sum of bytes [1:1] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
1‘45’hCommand echo.
2‘XX’hSlave I2C address.
3‘XX’hValue required to make the sum of bytes [1:2] add to a multiple of 256. [ZERO CHECKSUM]

1.4. Slave Address

The I2C address of a given power supply module is hardware specified as geographic addressing (per VITA 46.11 Rev 0.15). The default base address is 0x20. GA0 through GA3 provide the 5 LSB’s for the address. These geographic address signals have pull-up resistors to a 3.3-volt supply. When left open, the address will be 0x20, otherwise, the address will be as described in the table below.

SignalaI2C
Address
*GA4*GA3*GA2*GA1*GA0
001000000x20
001000010x21
001000100x22
001000110x23
001001000x24
001001010x25
001001100x26
001001110x27

2. INTERNAL INFORMATION AND INTERNAL COMMANDS

2.1. EEPROM Memory Allocation

The first 256 bytes of the EEPROM are reserved for the unit. These memory locations contain serial, field replaceable unit information (FRU) and calibration information for unit performance. All subsequent byte locations are used for BIT records. If the BIT record exceeds the total memory of the EEPROM, the BIT will roll back to the original fault log record address (0x0100), and overwrite the data written there. The organization of this scheme is shown below.

a> BYTE (hex)
>
> Data Type
a
> Description0x0000 – 0x00FF a
> FRU information and calibration memory map.
a
> 0x0100 – 0x010F
a
> BIT record write # 1.
a
> 0x0110 – 0x011F
>
> RESERVED
a
> BIT record write # 2.
a
> 0x00A0 – 0x00AF
>
> Character String, ASCII
a
> BIT record write # 3.
a
> 0x00B0 – 0x00BF
Character String, ASCII
a
> BIT record write # 4.
a
> 0x00C0 – 0x00CF
>
> U Integer, MSB First
a
> BIT record write # 5.
a
> 0x00D0 – 0x00DF
Character, ASCII
a
> BIT record write # 6.
a
> 0x00E0 – 0x00EF
Character, ASCII
a
> BIT record write # 7.
a
> 0x00F0 – 0x00FF
Character, ASCII
a
> BIT record write # 8.
a
> 0x0100 – 0x010F
U Integer, MSB First
a
> BIT record write # 9.
a
> …
a
> …
a
> 0xFFD0 – 0xFFDF
a
> BIT record write # (n – 2).
a
> 0xFFE0 – 0xFFEF
a
> BIT record write # (n – 1).
a
> 0xFFF0 – 0xFFFF
a
> BIT record write # (n).

2.1.1. BIT Record Map

BIT Record Map SectionByte #Description
Counter Bytes0-3Time counter.
Status Bytes4Trigger code.
5Output status.
6Share status.
Analog Bytes7-8Temperature.
9-10Input voltage.
RESERVED11-13RESERVED.
Record Management Bytes14Key, ‘DE’h
15Checksum.

2.1.1.1. Trigger Code: The trigger code explains the instance of the fault log recording data to the EEPROM. Each instance of a fault log contains a singular, set trigger event.

76543210
a
Start Up
Trigger
Timer TriggerCommand 08 TriggerFailure Trigger aInternal I2C
Failure
a
Voltage
Failure
a
Current
Failure
Temperature Failure

2.1.1.2. Output Status: Set indicates an output within specification. Clear indicates an output out of specification.

76543210
RESERVEDRESERVEDVS1 GOODVS2 GOODVS3 GOODV4 GOODV5 GOODV6 GOOD

2.1.1.3. Share Status: Set indicates an output current sharing (current evenly distributed among parallel modules). Clear indicates a module saturating the current.

76543210
RESERVEDRESERVEDVS1 SHARINGVS2 SHARINGVS3 SHARINGV4 SHARINGV5 SHARINGV6 SHARING

2.2. Internal Command List

Command NumberNameDescription
‘07’hRead BIT (TIv3)Reads the EEPROM at a specified memory address.
‘08’hWrite BIT (TIv3)Prompts an EEPROM write at the next, unused memory address.
‘09’hWrite BIT Timestamp (TIv3)Sets the timestamp of an EEPROM write following IPMI 1.5 specification.
‘10’hRead BIT Current Address (TIv3)Reads the current memory address of the pointer in the EEPROM.

2.2.1. Read BIT – Command ‘07’h

Request Byte #Expected DataDescription
1’07’hCommand.
2-3‘XX XX’hSpecified memory address to read.
4‘XX’hValue required to make the sum of bytes [1:3] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
1‘07’hCommand echo.
2-17‘XX XX …‘hValue stored at memory address, and subsequent addresses. For more information on formatting, see [2.2] and [2.2.2].
64‘XX XX’hValue required to make the sum of bytes [1:18] add to a multiple of 256. [ZERO CHECKSUM]

2.2.2. Write BIT – Command ‘08’h

Request Byte #Expected DataDescription
1’08’hCommand.
2-4‘XX XX …‘hData written to reserved memory bytes specified in BIT definition.
5‘XX’hValue required to make the sum of bytes [1:4] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
1‘08’hCommand echo.
2‘XX’hCompletion code, see the completion code table.
3‘XX’hValue required to make the sum of bytes [1:2] add to a multiple of 256. [ZERO CHECKSUM]

2.2.3. Write BIT Timestamp – Command ‘09’h

Request Byte #Expected DataDescription
1’09’hCommand.
2-5‘XX XX …‘hTime counter.
6‘XX’hValue required to make the sum of bytes [1:5] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
1‘09’hCommand echo.
2‘XX’hCompletion code, see the completion code table.
3‘XX’hValue required to make the sum of bytes [1:2] add to a multiple of 256. [ZERO CHECKSUM]

2.2.4. Read BIT Current Address – Command ‘10’h

Request Byte #Expected DataDescription
1’10’hCommand.
2‘XX’hValue required to make the sum of bytes [1:1] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
1‘10’hCommand echo.
2-3‘XX’hEEPROM memory address.
4‘XX’hValue required to make the sum of bytes [1:3] add to a multiple of 256. [ZERO CHECKSUM]

3. MASTER INFORMATION AND MASTER COMMANDS (IPMI)

3.1. Master System Overview

Certain commands will change the dynamics of the I2C system. When sending a master command, the PSM will become a master, assemble a response, and transmit the response across the I2C line before reverting to a slave. These commands are largely based on and follow the formatting of tier 1 ANSI VITA 46.11, which also leverages information from IPMI specification and ATCA specification by PICMG. This document will regularly refer to tables and definitions from these specifications. 3.2. Master System Data Transaction

The following shows a formulated master command request and the response.

Request Data:
012
Receiver Slave Address aNet FN,
Receiver LUN
Checksum
3456 . . (N-1)N
Requester Slave Address aRequester Sequence,
Requester LUN
CommandData . .Checksum
Response Data:
012
Requester Slave Address aNet FN,
Requester LUN
Checksum
34567 . . (N-1)N
Receiver Slave Address aRequester Sequence,
Receiver LUN
CommandCompletion CodeData . .Checksum

3.2.1. Connector Header

Every master command has a connector header. The connector header is bytes 0 to 4, and often vary in value based on address settings, how many transactions have occurred, and which LUN is being addressed. The description for bytes 0 to 4 is as follows:

Request Byte #Expected ByteDescription
0‘XX’h aReceiver Slave Address:
The address of the module that is receiving this transaction.
1‘XX’h aNet Function, Responder LUN:
[0:5] Net Function: Indicates the classification on command. Each command belongs to its own net function.
[6:7] Responder Logical Unit Number: A sub address of the responder module.
2‘XX’h aChecksum:
Value required to make bytes [0:1] add to a multiple of 256. [ZERO CHECKSUM]
3‘XX’h aRequester Slave Address:
The address of the module that will receive the response.
4‘XX’h aRequester Sequence, Responder LUN:
[0:5] Requester Sequence: Indicates the current transaction number in the communication sequence.
[6:7] Responder Logical Unit Number: A sub address of the requester module.
Response Byte #Expected DataDescription
0‘XX’h aRequester Slave Address:
The address of the module that is requesting this transaction.
1‘XX’h aNet Function, Requester LUN:
[0:5] Net Function: Indicates the classification on command. Each command belongs to its own net function.
[6:7] Requester Logical Unit Number: A sub address of the requested module.
2‘XX’h aChecksum:
Value required to make bytes [0:1] add to a multiple of 256. [ZERO CHECKSUM]
3‘XX’h aReceiver Slave Address:
The address of the module that is receiving this transaction.
4‘XX’h aNet Function, Responder LUN:
[0:5] Net Function: Indicates the classification on command. Each command belongs to its own net function.
[6:7] Responder Logical Unit Number: A sub address of the responder module.

3.3. Master Command List

Below is the list of commands the PSM will respond to. These commands follow the connector header format from byte 5 onward to the checksum.

Net FunctionCommand NumberNameDescription
‘06’h‘01’hGet Device ID InfoProvides the PSM hardware revision, firmware revision, and sensor and event interface revision information.
‘06’h‘01’hGet Device ID Info (Broadcast)Provides the PSM hardware revision, firmware revision, and sensor and event interface revision information. This command is identical to ‘Get Device ID Info,’ but is addressed to ‘00’h.
‘06’h‘04’hGet Self-Test ResultsProvides self-test information.
‘04’h‘20’hGet Device SDR InfoProvides general information about the sensor collection of the PSM.
‘04’h‘21’hGet Device SDRProvides the population of sensors for a given LUN on a FRU. Sensor data records provide information necessary to decode the ‘Get Sensor Reading’ command.
‘04’h‘22’hReserve Device SDR RepositoryIssues a Reservation ID, which is necessary to indicate if records have changed in multi-read SDR fetching processes.
‘04’h‘2D’hGet Sensor ReadingProvides a reading for a sensor.
‘0A’h‘10’hGet FRU Inventory Area InfoProvides the size of the FRU data, in bytes.
‘0A’h‘11’hRead FRU DataProvides the data stored in the FRU information area, when given an offset and number of bytes to read.
‘0A’h‘12’hWrite FRU DataWrites data in the FRU information when given an offset and data string to write.
‘2C’h‘00’hGet VSO CapableProvides information whether the PSM supports VITA 46.11 and basic operating parameters.
‘2C’h‘44’hGet Mandatory Sensor NumbersProvides an identifier number for each mandatory sensor located on the FRU.
‘2C’h‘01’hSet IPMB StateActivates or deactivates an IPMB.
‘2C’h‘0D’hGet Device Locator Record IDProvides the Device Locator ID for a specified FRU
‘2C’h‘1E’hFRU Control CapabilitiesProvides FRU control capabilities for a specified FRU.
‘2C’h‘20’hGet FRU Address InfoProvides general address information regarding a specified FRU located on the IPMC.

3.3.1. Get Device ID Info – Net Fn ‘06’h Command ‘01’h

Request Byte #Expected DataDescription
5‘01’hCommand.
6‘XX’hValue required to make the sum of unit address and bytes [3:5] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
5‘01’hCommand.
6‘00’hCompletion code, anything other than ‘00’h indicates failure.
7‘01’hDevice ID.
8‘80’h aDevice revision:
[7] 1b – Device provides SDRs.
[6:0] Firmware revision, binary.
9‘XX’hMajor firmware revision, based on module FW version.
10‘00’hMinor firmware revision.
11‘51’hIPMI version. ‘51’h indicates IPMI version 1.5.
12‘09’h aAdditional device support, lists the ‘logical device’ commands and functions that the controller supports that are in addition to the mandatory IPM:
[7] 1b – Chassis device
[6] 1b – Bridge
[5] 1b – IPMB Event Generator
[4] 1b – IPMB Event Reciever
[3] 1b – FRU Inventory Device
[2] 1b – SEL Device
[1] 1b – SDR Repository Device
[0] 1b – Sensor Device
13-15‘C1 5F 00’hManufacturer’s ID, LSB.
16-17’XX XX’hProduct ID. ASCII character, based on model name.
18‘XX’hValue required to make the sum of unit address and byte [0] add to a multiple of 256. [ZERO CHECKSUM].

3.3.2. Get Self-Test Results – Net Fn ‘06’h Command ‘04’h

a> Request Byte #Expected Data a
> Description
a
> 5‘04’h
Command.
a
> 6‘XX’h
Value required to make the sum of bytes [3:5] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
5‘04’hCommand.
6‘00’hCompletion code, anything other than ‘00’h indicates failure.
7‘55’h aSelf-test result code:
‘55’h, no error, self test passed.
‘56’h, self test function not implemented in this controller.
‘57’h, corrupted or inaccessible data or devices.
‘58’h, fatal hardware error.
8‘00’h aSelf-test failure code:
IF byte 6 is ‘57’h, this byte returns a flag bitfield, indicating the inaccessible data.
[7] 1b - Inaccessible SEL device.
[6] 1b - Inaccessible SDR Repository.
[5] 1b - Inaccessible BMC FRU device.
[4] 1b - IPMB signal lines do not respond.
[3] 1b - SDR repository empty.
[2] 1b - Internal use area of BMC FRU corrupted.
[1] 1b - Controller update ‘boot block’ firmware corrupted.
[0] 1b - Controller operational firmware corrupted.
9‘XX’hValue required to make the sum of unit address and byte [3:8] add to a multiple of 256. [ZERO CHECKSUM]

3.3.3. Get Device SDR Info – Net Fn ‘04’h Command ‘20’h

a> Request Byte #
a
> Expected Data
a
> Description
a
> 5‘20’h
Command.
a
> 6‘XX’h
Value required to make the sum of bytes [3:5] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
5‘20’hCommand.
6‘00’hCompletion code, anything other than ‘00’h indicates failure.
7‘09’hNumber of sensors in device for LUN this command was addressed to.
8‘81’h aPopulation flags:
[7] 1b – Dynamic sensor population, the device may have its sensor population change on run time.
[6] Reserved
[5] Reserved
[4] Reserved
[3] 1b – LUN 3 has sensors.
[2] 1b – LUN 2 has sensors.
[1] 1b – LUN 1 has sensors.
[0] 1b – LUN 0 has sensors.
9-12’00 00 00 00’hCounter, increments every time a dynamic sensor population changes.
13‘XX’hValue required to make the sum of unit address and byte [3:12] add to a multiple of 256. [ZERO CHECKSUM]

3.3.4. Get Device SDR – Net Fn ‘04’h Command ‘21’h

a> Request Byte #
a
> Expected Data
a
> Description
a
> 5‘21’h
Command.
a
> 6-7‘XX XX’h
Reservation ID.
a
> 8-9‘XX XX’h
Record ID.
a
> 10‘XX’h
Offset into the record.
a
> 11‘XX’h
Number of bytes to read. ‘FF’h means read the entire record.
a
> 12‘XX’h
Value required to make the sum of bytes [3:11] add to a multiple of 256.
Response Byte #Expected DataDescription
5‘21’hCommand.
6‘00’h aCompletion code, anything other than ‘00’h indicates failure.
80h – Indicates the record has changed since it was last requested.
7-8‘XX XX’hRecord ID for next record
9-(9+N)‘XX …‘hRequested SDR data.
(10+N)‘XX’hValue required to make the sum of unit address and byte [3:(9+N)] add to a multiple of 256. [ZERO CHECKSUM]

3.3.4.1. Sensor Data Record Memory Map

Sensor Data Records are organized in unique blocks of data which are categorized by “Get Mandatory Sensor Numbers.” These data records can only be obtained by specifying the unique number associated with the block of data, and then specifying the parameters of data to return such as offset and length as seen in “Get SDR.” For more information on the descriptions of these blocks and bytes, refer to the IPMI v1.5 specification section 37 “Sensor Data Record Formats.”

SDR Memory Map LocationByte #Expected ByteDescription
Sectiona
Management Controller Device Locator
(‘00’h)
0-1’00 00’hRecord ID stored by Sensor Data Repository, LSB.
2‘51’hSDR version.
3‘18’hRecord type.
4‘1B’hRecord length.
5‘XX’hDevice slave address.
6‘00’hChannel number.
7‘CC’hPower state notification global initialization.
8‘09’hDevice capabilities.
9-11’00 …‘hReserved.
10‘A0’hEntity ID.
11‘60’hEntity Instance
12‘00’hOEM.
13‘D0’hDevice ID type/length. ‘ASCII Encoding, 16 characters’
14-29’56 …‘hDevice ID data. ‘VPX---‘
a
Management Controller Device Locator
(‘01’h) ???
0-1’01 00’hRecord ID stored by Sensor Data Repository, LSB.
2‘51’hSDR version.
3‘18’hRecord type.
4‘1B’hRecord length.
5‘XX’hDevice slave address.
6‘00’hChannel number.
7‘CC’hPower state notification global initialization.
8‘09’hDevice capabilities.
9-11’00 …‘hReserved.
10‘A0’hEntity ID.
11‘60’hEntity Instance
12‘00’hOEM.
13‘D0’hDevice ID type/length. ‘ASCII Encoding, 16 characters’
14-29’56 …‘hDevice ID data. ‘VPX---‘
Full Sensor Record “FRU STATE SENSOR” (‘02’h)0-1’02 00’hRecord ID stored by Sensor Data Repository, LSB.
2‘51’hSDR version.
3‘01’hRecord type.
4‘33’hRecord length.
5‘XX’hDevice slave address.
6‘00’hDevice LUN.
7‘00’hSensor number.
8‘A0’hEntity ID.
9‘60’hEntity instance.
10‘67’hSensor initialization.
11‘41’hSensor capabilities.
12‘F0’hSensor type.
13‘6F’hEvent/reading type code.
14-15‘FF 00’hAssertion event mask/lower threshold reading mask.
16-17’00 00’Deassertion event mask/upper threshold reading mask.
18-19’00 00’hDiscrete Reading Mask/settable threshold mask.
20‘00’hSensor units 1.
21‘00’hSensor units 2.
22‘00’hSensor units 3.
23‘00’hLinearization.
24‘00’hM.
25‘00’hM, tolerance.
26‘00’hB.
27‘00’hB, accuracy.
28‘00’hAccuracy, accuracy exp.
29‘00’hR exp, B exp.
30‘00’hAnalog characteristic flags.
31‘00’hNominal reading.
32‘00’hNominal maximum.
33‘00’hNormal minimum.
34‘00’hSensor maximum reading.
35‘00’hSensor minimum reading.
36‘00’hUpper non-recoverable threshold.
37‘00’hUpper critical threshold.
38‘00’hUpper non-critical threshold.
39‘00’hLower non-recoverable threshold.
40‘00’hLower critical threshold.
41‘00’hLower non-critical threshold.
42‘00’hPositive-going threshold hysteresis value.
43‘00’hNegative-going threshold hysteresis value.
44-45’00 00’hReserved.
46‘00’hOEM.
47‘C8’hID string type/length. ‘ASCII Encoding, 8 characters’
48-55’48 …‘hID string data. ‘Hot Swap’
Full Sensor Record “SYSTEM IPMB LINK” (‘03’h)0-1’03 00’hRecord ID stored by Sensor Data Repository, LSB.
2‘51’hSDR version.
3‘01’hRecord type.
4‘38’hRecord length.
5‘XX’hDevice slave address.
6‘00’hDevice LUN.
7‘01’hSensor number.
8‘A0’hEntity ID.
9‘60’hEntity instance.
10‘67’hSensor initialization.
11‘41’hSensor capabilities.
12‘F1’hSensor type.
13‘6F’hEvent/reading type code.
14-15‘0F 00’hAssertion event mask/lower threshold reading mask.
16-17’00 00’hDeassertion event mask/upper threshold reading mask.
18-19‘0F 00’hDiscrete Reading Mask/settable threshold mask.
20‘00’hSensor units 1.
21‘00’hSensor units 2.
22‘00’hSensor units 3.
23‘00’hLinearization.
24‘00’hM.
25‘00’hM, tolerance.
26‘00’hB.
27‘00’hB, accuracy.
28‘00’hAccuracy, accuracy exp.
29‘00’hR exp, B exp.
30‘00’hAnalog characteristic flags.
31‘00’hNominal reading.
32‘00’hNominal maximum.
33‘00’hNormal minimum.
34‘00’hSensor maximum reading.
35‘00’hSensor minimum reading.
36‘00’hUpper non-recoverable threshold.
37‘00’hUpper critical threshold.
38‘00’hUpper non-critical threshold.
39‘00’hLower non-recoverable threshold.
40‘00’hLower critical threshold.
41‘00’hLower non-critical threshold.
42‘00’hPositive-going threshold hysteresis value.
43‘00’hNegative-going threshold hysteresis value.
44‘00’hReserved.
45‘00’hReserved.
46‘00’hOEM.
47‘CD’hID string type/length. ‘ASCII Encoding, 13 characters.‘
48-60’73 …‘hID string data. ‘IPMB Physical’
Full Sensor Record “FRU HEALTH SENSOR (‘04’h)0-1’04 00’hRecord ID stored by Sensor Data Repository, LSB.
2‘51’hSDR version.
3‘01’hRecord type.
4‘37’hRecord length.
5‘XX’hDevice slave address.
6‘00’hDevice LUN.
7‘02’hSensor number.
8‘A0’hEntity ID.
9‘60’hEntity instance.
10‘67’hSensor initialization.
11‘41’hSensor capabilities.
12‘F2’hSensor type.
13‘04’hEvent/reading type code.
14-15’03 00’hAssertion event mask/lower threshold reading mask.
16-17’00 00’hDeassertion event mask/upper threshold reading mask.
18-19’03 00’hDiscrete Reading Mask/settable threshold mask.
20‘00’hSensor units 1.
21‘00’hSensor units 2.
22‘00’hSensor units 3.
23‘00’hLinearization.
24‘00’hM.
25‘00’hM, tolerance.
26‘00’hB.
27‘00’hB, accuracy.
28‘00’hAccuracy, accuracy exp.
29‘00’hR exp, B exp.
30‘00’hAnalog characteristic flags.
31‘00’hNominal reading.
32‘00’hNominal maximum.
33‘00’hNormal minimum.
34‘00’hSensor maximum reading.
35‘00’hSensor minimum reading.
36‘00’hUpper non-recoverable threshold.
37‘00’hUpper critical threshold.
38‘00’hUpper non-critical threshold.
39‘00’hLower non-recoverable threshold.
40‘00’hLower critical threshold.
41‘00’hLower non-critical threshold.
42‘00’hPositive-going threshold hysteresis value.
43‘00’hNegative-going threshold hysteresis value.
44-45‘00’hReserved.
46‘00’hOEM.
47‘CC’hID string type/length. ‘ASCII Encoding, 12 characters’
48-59’46 …‘hID string data. ‘FRU#0 Health’
Full Sensor Record “FRU VOLTAGE SENSOR” (‘05’h)0-1’05 00’hRecord ID stored by Sensor Data Repository, LSB.
2‘51’hSDR version.
3‘01’hRecord type.
4‘38’hRecord length.
5‘XX’hDevice slave address.
6‘00’hDevice LUN.
7‘03’hSensor number.
8‘A0’hEntity ID.
9‘60’hEntity instance.
10‘67’hSensor initialization.
11‘41’hSensor capabilities.
12‘02’hSensor type.
13‘05’hEvent/reading type code.
14-15’03 00’hAssertion event mask/lower threshold reading mask.
16-17’00 00’hDeassertion event mask/upper threshold reading mask.
18-19’03 00’hDiscrete Reading Mask/settable threshold mask.
20‘00’hSensor units 1.
21‘00’hSensor units 2.
22‘00’hSensor units 3.
23‘00’hLinearization.
24‘00’hM.
25‘00’hM, tolerance.
26‘00’hB.
27‘00’hB, accuracy.
28‘00’hAccuracy, accuracy exp.
29‘00’hR exp, B exp.
30‘00’hAnalog characteristic flags.
31‘00’hNominal reading.
32‘00’hNominal maximum.
33‘00’hNormal minimum.
34‘00’hSensor maximum reading.
35‘00’hSensor minimum reading.
36‘00’hUpper non-recoverable threshold.
37‘00’hUpper critical threshold.
38‘00’hUpper non-critical threshold.
39‘00’hLower non-recoverable threshold.
40‘00’hLower critical threshold.
41‘00’hLower non-critical threshold.
42‘00’hPositive-going threshold hysteresis value.
43‘00’hNegative-going threshold hysteresis value.
44-45‘00’hReserved.
46‘00’hOEM.
47‘CD’hID string type/length. ‘ASCII Encoding, 13 characters.‘
48-60’46 …’ID string data. ‘FRU#0 Voltage’
Full Sensor Record “FRU TEMPERATURE SENSOR” (‘06’h)0-1’06 00’hRecord ID stored by Sensor Data Repository, LSB.
2‘51’hSDR version.
3‘01’hRecord type.
4‘35’hRecord length.
5‘XX’hDevice slave address.
6‘00’hDevice LUN.
7‘04’hSensor number.
8‘A0’hEntity ID.
9‘60’hEntity instance.
10‘67’hSensor initialization.
11‘41’hSensor capabilities.
12‘F3’hSensor type.
13‘6F’hEvent/reading type code.
14-15‘3F 00’hAssertion event mask/lower threshold reading mask.
16-17‘3F 00’hDeassertion event mask/upper threshold reading mask.
18-19‘3F 00’hDiscrete Reading Mask/settable threshold mask.
20‘00’hSensor units 1.
21‘00’hSensor units 2.
22‘00’hSensor units 3.
23‘00’hLinearization.
24‘00’hM.
25‘00’hM, tolerance.
26‘00’hB.
27‘00’hB, accuracy.
28‘00’hAccuracy, accuracy exp.
29‘00’hR exp, B exp.
30‘00’hAnalog characteristic flags.
31‘00’hNominal reading.
32‘00’hNominal maximum.
33‘00’hNormal minimum.
34‘00’hSensor maximum reading.
35‘00’hSensor minimum reading.
36‘00’hUpper non-recoverable threshold.
37‘00’hUpper critical threshold.
38‘00’hUpper non-critical threshold.
39‘00’hLower non-recoverable threshold.
40‘00’hLower critical threshold.
41‘00’hLower non-critical threshold.
42‘00’hPositive-going threshold hysteresis value.
43‘00’hNegative-going threshold hysteresis value.
44-45’00 00’hReserved.
46‘00’hOEM.
47‘CA’hID string type/length. ‘ASCII Encoding, 10 characters’
48-57’46 …‘hID string data. ‘FRU#0 Temp’
Full Sensor Record “FRU PAYLOAD TEST RESULTS” (‘07’h)0-1’07 00’hRecord ID stored by Sensor Data Repository, LSB.
2‘51’hSDR version.
3‘01’hRecord type.
4‘35’hRecord length.
5‘XX’hDevice slave address.
6‘00’hDevice LUN.
7‘05’hSensor number.
8‘A0’hEntity ID.
9‘60’hEntity instance.
10‘67’hSensor initialization.
11‘41’hSensor capabilities.
12‘F4’hSensor type.
13‘04’hEvent/reading type code.
14-15’03 00’hAssertion event mask/lower threshold reading mask.
16-17’00 00’hDeassertion event mask/upper threshold reading mask.
18-19’03 00’hDiscrete Reading Mask/settable threshold mask.
20‘00’hSensor units 1.
21‘00’hSensor units 2.
22‘00’hSensor units 3.
23‘00’hLinearization.
24‘00’hM.
25‘00’hM, tolerance.
26‘00’hB.
27‘00’hB, accuracy.
28‘00’hAccuracy, accuracy exp.
29‘00’hR exp, B exp.
30‘00’hAnalog characteristic flags.
31‘00’hNominal reading.
32‘00’hNominal maximum.
33‘00’hNormal minimum.
34‘00’hSensor maximum reading.
35‘00’hSensor minimum reading.
36‘00’hUpper non-recoverable threshold.
37‘00’hUpper critical threshold.
38‘00’hUpper non-critical threshold.
39‘00’hLower non-recoverable threshold.
40‘00’hLower critical threshold.
41‘00’hLower non-critical threshold.
42‘00’hPositive-going threshold hysteresis value.
43‘00’hNegative-going threshold hysteresis value.
44-45‘00’hReserved.
46‘00’hOEM.
47‘CC’hID string type/length. ‘ASCII Encoding, 12 characters’
48-59’46 …‘hID string data. ‘FRU#0 P.Test’
Full Sensor Record “FRU PAYLOAD TEST STATUS” (‘08’h)0-1’08 00’hRecord ID stored by Sensor Data Repository, LSB.
2‘51’hSDR version.
3‘01’hRecord type.
4‘3B’hRecord length.
5‘XX’hDevice slave address.
6‘00’hDevice LUN.
7‘06’hSensor number.
8‘A0’hEntity ID.
9‘60’hEntity instance.
10‘67’hSensor initialization.
11‘41’hSensor capabilities.
12‘F5’hSensor type.
13‘03’hEvent/reading type code.
14-15’03 00’hAssertion event mask/lower threshold reading mask.
16-17’00 00’hDeassertion event mask/upper threshold reading mask.
18-19’03 00’hDiscrete Reading Mask/settable threshold mask.
20‘00’hSensor units 1.
21‘00’hSensor units 2.
22‘00’hSensor units 3.
23‘00’hLinearization.
24‘00’hM.
25‘00’hM, tolerance.
26‘00’hB.
27‘00’hB, accuracy.
28‘00’hAccuracy, accuracy exp.
29‘00’hR exp, B exp.
30‘00’hAnalog characteristic flags.
31‘00’hNominal reading.
32‘00’hNominal maximum.
33‘00’hNormal minimum.
34‘00’hSensor maximum reading.
35‘00’hSensor minimum reading.
36‘00’hUpper non-recoverable threshold.
37‘00’hUpper critical threshold.
38‘00’hUpper non-critical threshold.
39‘00’hLower non-recoverable threshold.
40‘00’hLower critical threshold.
41‘00’hLower non-critical threshold.
42‘00’hPositive-going threshold hysteresis value.
43‘00’hNegative-going threshold hysteresis value.
44-45’00 00’hReserved.
46‘00’hOEM.
47‘D0’hID string type/length. ‘ASCII Encoding, 15 characters’
48-62’46 …‘hID string data. ‘FRU#0P.TestStat’
OEM Record “Analog Sensors” (‘09’h)0-1’09 00’hRecord ID stored by Sensor Data Repository, LSB.
2‘51’hSDR version.
3‘C0’hRecord type.
4‘1C’hRecord length.
5-7‘C1 5F 00’hManufacturer’s ID, LSB.
8-9‘XX XX’hVoltage on V1, nominal voltage (10mV).
10-11‘XX XX’hVoltage on V2, nominal voltage (10mV).
12-13‘XX XX’hVoltage on V3, nominal voltage (10mV).
14-15‘XX XX’hVoltage on V4, nominal voltage (10mV).
16-17‘XX XX’hVoltage on V5, nominal voltage (10mV).
18-19‘XX XX’hVoltage on V6, nominal voltage (10mV).
20-21‘XX XX’hCurrent on V1, maximum current (100mA).
22-23‘XX XX’hCurrent on V2, maximum current (100mA).
24-25‘XX XX’hCurrent on V3, maximum current (100mA).
26-27‘XX XX’hCurrent on V4, maximum current (100mA).
28-29‘XX XX’hCurrent on V5, maximum current (100mA).
30-31‘XX XX’hCurrent on V6, maximum current (100mA).
32-33‘XX XX’hTemperature,

3.4.5. Get Sensor Reading – Net Fn ‘04’h Command ‘2D’h

a> Request Byte #
a
> Expected Data
a
> Description
a
> 5‘2D’h
Command.
a
> 6‘XX’h
Sensor number.
a
> 7‘XX’h
Value required to make the sum of bytes [3:6] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
5‘2D’hCommand echo.
6‘XX’hAnalog sensor reading.
7‘XX’h aEvent Messaging:
[7] 1b – Event messaging enabled.
[6] 1b – Sensor scanning enabled.
[5] 1b – Re-arm update ready for this sensor.
[4] Reserved
[3] Reserved
[2] Reserved.
[1] Reserved.
[0] Reserved.
8‘XX’hProvides an indicate of what state the sensor is currently in.
9‘XX’hProvides asserting for discrete reading sensors.
10‘XX’hValue required to make the sum of bytes [3:9] add to a multiple of 256. [ZERO CHECKSUM]

3.4.6. Get FRU Inventory Area Info – Net Fn ‘0A’h Command ‘10’h

a> Request Byte #
a
> Expected Data
a
> Description
a
> 5‘10’h
Command.
a
> 6‘00’h
FRU Device ID.
a
> 7‘XX’h
Value required to make the sum of bytes [3:6] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
5‘10’hCommand echo.
6-7’68 00’hFRU inventory area size in bytes, LSB.
8‘00’h a‘01’h indicates FRU device is accessed by words.
‘00’h indicates FRU device is accessed by bytes.
9‘XX’hValue required to make the sum of bytes [3:8] add to a multiple of 256. [ZERO CHECKSUM]

3.4.7. Read FRU Data – Net Fn ‘0A’h Command ‘11’h

a> Request Byte #
a
> Expected Data
a
> Description
a
> 5‘11’h
Command.
a
> 6‘00’h
FRU Device ID.
a
> 7-8‘XX XX’h
FRU Inventory offset to read.
a
> 9‘XX’h
Count to read (N).
a
> 10‘XX’h
Value required to make the sum of bytes [3:9] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
5‘11’hCommand echo.
6‘00’hCompletion code, anything other than ‘00’h indicates failure.
7‘XX’hCount read (N).
8-(8+N)‘XX …‘hRequested data.
(9+N)‘XX’hValue required to make the sum of bytes [3:(8+N)] add to a multiple of 256. [ZERO CHECKSUM]

3.4.7.1. FRU Data Records

FRU Data Records, unlike sensor data records, are all organized within one block. The only parameters required to retrieve this data is offset and length as seen in “Read FRU Data.” For more information on the descriptions of these bytes and formatting, refer to the IPMI FRU v1.0 specification section 17 “FRU Information Layout.”

FRU Memory MapByte #Expected ByteDescription
NameSubsection
Common Header0‘01’hCommon Header format version.
1‘00’hInternal Use Area Starting Offset value (‘00’h not occupied).
2‘00’hChassis Info Area Starting Offset value (‘00’h not occupied).
3‘01’hBoard Area Starting Offset value (‘00’h not occupied).
4‘00’hProduct Info Area Starting Offset value (‘00’h not occupied).
5‘07’hMulti-record Area Starting Offset value (‘00’h not occupied).
6‘00’hPAD.
7‘F7’hCommon Header [0-6] checksum.
Board Info Area8‘01’hBoard Info Area formatting.
9‘06’hArea length (per 8 bytes).
10‘19’hLanguage code.
11-13’00 00 00’hManufacturing code.
14‘C4’hBoard manufacturer type/length.
15-18‘XX . .‘hBoard manufacturer data, ASCII.
19‘C3’hBoard product type/length.
20-22‘XX . .‘hBoard product data, ASCII.
23‘46’hBoard serial type/length.
24-29‘XXBoard serial data.
30‘D3’hBoard part number type/length.
31-49‘XX . .‘hBoard part number data, ASCII.
50‘00’hAsset tag type/length.
51‘00’hFRU file ID.
52‘C1’hKey.
53-54’00 . . ‘hRESERVED.
55‘XX’hBoard Info Area [8-54] checksum.
Product Info Area56‘01’hProduct Info Area formatting.
57‘06’hArea length (per 8 bytes).
58‘19’hLanguage code.
59‘C4’hManufacturer’s name type/length.
60-63‘4E . .‘hManufacturer’s name data.
64‘C3’hProduct name type/length.
65-67’56 . .‘hProduct name data.
68‘D3’hProduct model name type/length.
69-87‘XX . .‘hProduct model name data.
88‘C2’hBoard version type/length.
89-90‘XX XX’hBoard version data.
91‘06’hBoard serial number type/length.
92-97‘XX . .‘hBoard serial number data.
98‘00’hAsset tag type/length.
99‘00’hFRU file ID.
100‘C1’hKey.
101-102’00 00’hRESERVED
103‘XX’hProduct Info Area [56-] checksum.

3.4.8. Write FRU Data – Net Fn ‘0A’h Command ‘12’h

a> Request Byte #
a
> Expected Data
a
> Description
a
> 5‘12’h
Command.
a
> 6‘00’h
FRU Device ID.
a
> 7‘XX’h
FRU Inventory offset to read, LSB.
a
> 8‘XX’h
FRU Inventory offset to read, MSB.
a
> 9-(9+N)‘XX …‘h
Data to write (N).
a
> (10+N)‘XX’h
Value required to make the sum of bytes [3:(9+N)] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
5‘12’hCommand.
6‘00’hCompletion code, anything other than ‘00’h indicates failure.
7‘XX’hCount written (N).
8‘XX’hValue required to make the sum of bytes [3:7] add to a multiple of 256. [ZERO CHECKSUM]

3.4.9. Get VSO Capability – Net Fn ‘2C’h Command ‘00’h

a> Request Byte #
a
> Expected Data
a
> Description
a
> 5‘00’h
Command.
a
> 6‘03’h
VSO identifier.
a
> 7‘XX’h
Value required to make the sum of bytes [3:6] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
5‘00’hCommand echo.
6‘00’hCompletion code.
7‘03’hVSO identifier.
8‘00’hIPMC identifier.
9‘00’hIPMB capabilities.
10‘00’hVSO standard.
11‘01’hVSO specification revision.
12‘00’hMax FRU device ID.
13‘00’hFRU device for IPMC.
14‘XX’hValue required to make the sum of bytes [3:13] add to a multiple of 256. [ZERO CHECKSUM]

3.4.10. Get Mandatory Sensor Numbers – Net Fn ‘2C’h Command ‘44’h

a> Request Byte #
a
> Expected Data
a
> Description
a
> 5‘44’h
Command.
a
> 6‘03’h
VSO identifier.
a
> 7‘00’h
FRU device ID.
a
> 8‘XX’h
Value required to make the sum of bytes [3:7] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
5‘44’hCommand.
6‘00’hCompletion code, anything other than ‘00’h indicates failure.
7‘03’hVSO identifier.
8‘00’hFRU State sensor number.
9‘02’hFRU Health sensor number.
10‘03’hFRU Voltage sensor number.
11‘04’hFRU Temperature sensor number.
12‘05’hPayload Test Results sensor number.
13‘06’hPayload Test Status sensor number.
14‘XX’hValue required to make the sum of bytes [3:13] add to a multiple of 256. [ZERO CHECKSUM]

3.4.11. Set IPMB State – Net Fn ‘2C’h Command ‘09’h

a> Request Byte #
a
> Expected Data
a
> Description
a
> 5‘09’h
Command.
a
> 6‘03’h
VSO identifier.
a
> 7‘XX’h a
IPMB-A State:
[1:7] System IPMB Link Identification
‘00’h Select all system IPMB Links
’01-5F’h System IPMB Link number 1 to 95.
[0] 1b – Local Control State, IPMC determines IPMB-A state.
a
> 8‘XX’h a
IPMB-B State:
[1:7] System IPMB Link Identification
‘00’h Select all system IPMB Links
’01-5F’h System IPMB Link number 1 to 95.
[0] 1b – Local Control State, IPMC determines IPMB-B state.
a
> 9‘XX’h
Value required to make the sum of bytes [3:8] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
5‘09’hCommand echo.
6‘00’hCompletion code, anything other than ‘00’h indicates failure.
7‘03’hVSO identifier.
8‘XX’hValue required to make the sum of bytes [3:7] add to a multiple of 256. [ZERO CHECKSUM]

3.4.12. Get Device Locator Rec ID – Net Fn ‘2C’h Command ‘0D’h

a> Request Byte #
a
> Expected Data
a
> Description
a
> 5‘0D’h
Command.
a
> 6‘03’h
VSO identifier.
a
> 7‘00’h
FRU device ID.
a
> 8‘XX’h
Value required to make the sum of bytes [3:7] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
5‘0D’hCommand echo.
6‘00’hCompletion code, anything other than ‘00’h indicates failure.
7‘03’hVSO identifier.
8-9‘XX XX’hRecord ID, LSB.
10‘XX’hValue required to make the sum of bytes [3:9] add to a multiple of 256. [ZERO CHECKSUM]

3.4.13. Get FRU Control Capabilities – Net Fn ‘2C’h Command ‘1E’h

a> Request Byte #
a
> Expected Data
a
> Description
a
> 5‘1E’h
Command.
a
> 6‘03’h
VSO identifier.
a
> 7‘00’h
FRU device ID.
a
> 8‘XX’h
Value required to make the sum of bytes [3:7] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
4‘40’hCommand echo.
5‘00’hCompletion code.
6‘03’hVSO identifier.
7‘XX’h aFRU control capabilities mask:
[7:5] Reserved.
[4] 1b – Capable of controlling payload power.
[3] 1b = Capable of issuing a diagnostic interrupt.
[2] 1b – Capable of issuing a graceful reboot.
[1] 1b – Capable of issuing a warm reset.
[0] 1b – Capable of issuing a cold reset.
8‘XX’hValue required to make the sum of bytes [3:7] add to a multiple of 256. [ZERO CHECKSUM]

3.4.14. Get FRU Address Info – Net Fn ‘2C’h Command ‘40’h

a> Request Byte #
a
> Expected Data
a
> Description
a
> 5‘40’h
Command.
a
> 6‘03’h
VSO identifier.
a
> 7‘00’h
FRU device ID.
a
> 8‘XX’h
Address key type.
a
> 9‘XX’h
Address key.
a
> 10‘XX’h
Site type.
a
> 11‘XX’h
Value required to make the sum of bytes [3:10] add to a multiple of 256. [ZERO CHECKSUM]
Response Byte #Expected DataDescription
5‘40’hCommand echo.
6‘00’hCompletion code.
7‘03’hVSO identifier.
8‘XX’hHardware address, based on geographic addressing.
9‘XX’hIPMB address, based on geographic addressing.
10‘FF’hReserved.
11‘01’hFRU device ID.
12‘01’hSite number.
13‘02’hSite type.
14‘FF’hReserved.
15‘FF’hAddress on IPMI channel 7.
16‘XX’hValue required to make the sum of bytes [3:15] add to a multiple of 256. [ZERO CHECKSUM]

3.4. Completion Code

a> Completion Code
a
> Description‘00’h
Command Successful.‘80’h
Write failed, location is a protected offset.‘81’h
Write failed, device is busy.‘C0’h
Node busy.‘C1’h
Invalid command.‘C2’h
Command invalid for a given LUN.‘C3’h
Timeout while processing command.‘C9’h
Parameter out of range.‘CC’h
Invalid data field in request.‘D3’h
Destination unavailable.‘D5’h
Cannot execute command.