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

ContentsSorted ascending
Get Non-Volatile Area Info
How to issue these commands with ipmitool
Read Non-Volatile Memory
Read SPI Status
SPI Read
SPI Write
Write SPI Control

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

Using ipmitool

You can issue these command using the OS supplied ipmitool as follows.

To read:

   $ ipmitool -H 192.168.1.41 -U '' -P '' -T 0x82 -b 7 -t 0x76 raw 0x32 0x34 1 11 0 4
-T 0x82 0x82 is 0x70 + slot*2 or 0xa4 for special case of slot 13
0x32 0x34 0x32 means UWMMC special command
0x34 is configuration read
1 11 0 4 1 is device select (0=T1, 1=T2)
11 0 is address (lsb msb)
4 is byte count

To write:

  $ ipmitool -H 192.168.1.41 -U '' -P '' -T 0x82 -b 7 -t 0x76 raw 0x32 0x33 0 0 0 6 0x03 0xff 0xff 0xff 0x00 0xc0
0x32 x33 0x33 is configuration write
0 0 0 6 device select, address, count (=6 e.g.)
0x03 0xff ... data to write

-- EricHazen - 30 Apr 2014

Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r3 - 30 Apr 2014 - EricHazen
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback