Below are the formats for a few useful IPMI commands for the AMC13 as provided by Jes Tikalsky (
jtikalsky@hep.wisc.edu) with the University of Wisconsin group.
For a more in depth look at the Status and Control Registers for the MMC FPGA SPI Interface, see
the Wisconsin official MMC documentation
SPI Read
Below are the relevant bytes for a
raw
IPMI SPI "read data" command
NetFN 0x32
CMD 0x34
Params PortID (0-3)
Address LS Byte
Address MS byte
Count (I recommend <20)
SPI Write
Below are the relevant bytes for a
raw
IPMI SPI "write data" command
NetFN 0x32
CMD 0x33
Params PortID (0-3)
Address LS Byte
Address MS byte
Count (I recommend <20)
Byte 1
...
Byte n
Read SPI Status
Below are the relevant bytes for
raw
IPMI SPI "read status register" command
NetFN 0x32
CMD 0x31
Params 1: Port ID (0-3)
Return 1: bit 7: HF1
bit 6: HF2
bit 5: CFGRDY
bit 4: REQCFG
bit 3-0: reserved
Write SPI Control
Below are the relevant bytes for a
raw
IPMI SPI "write control register" command. For the purposes of the AMC13, we really only care about the
CFGRDY
bit
NetFN 0x32
CMD 0x32
Params 1: Port ID (0-3)
2: bit 7: select UHF for update
bit 6: select LHF for update
bit 5: select CFGRDY for update
bit 4-2: 0
bit 1: SET selected flags
bit 0: CLEAR selected flags
Get Non-Volatile Area Info
Below are the relevant bytes for a
raw
IPMI SPI "read NV area info" command
Get Nonvolatile Area Info (Partial):
NetFN 0x32
CMD 0x40
Params 1: 0
Return 1: 0
...
15: FPGA Config Area LS Byte
16: FPGA Config Area MS Byte
17: FPGA Config Area Size (32 byte units)
Read Non-Volatile Memory
Below are the relevant bytes for a
raw
IPMI SPI "read NV memory" command
Raw Nonvolatile Read:
NetFN 0x32
CMD 0x42
Params 1: Offset LS
2: Offset MS
3: Length (<=20)
Return $Data
--
DavidZou - 30 May 2013