Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

The following assumes that you are already able to build the IPMC software and will explain how to use ipmitool to upload the new code to the IPMC from linux w/o having to use the Actel dongle from the Windows box.

ipmitool1.8.9-pps-10 has been installed in the central package repository at /reg/g/rce/packages/bin with the names ipmitool and ipmitool-pps.

  • Create the software image to upload (called the firmware by PPS, hpm1fw.img) by make hpm
  • From the same network as the shelf manager (currently cds), execute:

    No Format
    ipmitool-pps -I lan -H shlfmgr02 -t 0x86 -b 0 -A NONE hpm upgrade hpm1fw.img activate

     

    • -H shlfmgr02 is the hostname of the Shelf Manager
    • -t 0x86 is the IPMB address of the COB you are upgrading
    • hpm1fw.img is the path to the software image file created by make hpm
  • If there is a problem with the upgrade, you can try rolling back to the old software with the command:
    • ipmitool-pps ... hpm rollback

The help that is packaged with ipmitool is pretty good, so there's more info to be found there.

Here's a couple that will probably be useful:

  • To activate the payload (initiate M1->M2 transition):

    Code Block
    languagenone
    ipmitool-pps -I lan -H shlfmgr02 -t 0x86 -b 0 -A NONE picmg policy set 0 2 1
    
  • To deactivate the payload (initiate M4->M5 transition):

    Code Block
    languagenone
    ipmitool-pps -I lan -H shlfmgr02 -t 0x86 -b 0 -A NONE picmg policy set 0 1 0
    

And here are a couple of commands which can be typed into the IPMC console to do fun things:

  • Reset commands over console:

    Code Block
    languagenone
    [B8 00 0D 0A 40 00 XX] 
    
    XX = 00 current mode
       = 01 normal mode
       = 02 standalone mode
       = 03 manual standalone
    
    So:
    [B8 00 0D 0A 40 00 00]
    [B8 00 0D 0A 40 00 01]
    [B8 00 0D 0A 40 00 02]
    [B8 00 0D 0A 40 00 03]
    
    Reset Non-volatile Parameters and Reboot (will cause INIT callbacks to execute)
    [B8 00 41 0A 40 00]
    
  • Set Handle Switch

    Code Block
    languagenone
    [B8 00 08 0A 40 00 00 XX]
    
    00 = Open
    01 = Closed
    02 = Hardware Switch
    
    So:
    [B8 00 08 0A 40 00 00 00]
    [B8 00 08 0A 40 00 00 01]
    [B8 00 08 0A 40 00 00 02]
    
  • Reset the SDR repository

    Code Block
    languagenone
    [B8 00 33 0A 40 00]

Custom COB IPMI commands

pre-COB5 Custom IPMI Commands 

These commands can be issued using ipmitool.

 

Code Block
languagenone
ipmitool-pps -I lan -H <shelfmanager> -t <COB Address> -b 0 -A NONE raw <SLAC_NETFN> <CMD> [DATA_0] [DATA_1] ... [DATA_N]

Where:
<shelfmanager> is the hostname/IP address of the Shelf Manager (ex. shasta-sm)
<COB address> is the IPMB address of the COB board (ex. 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c)
<SLAC_NETFN>  The NetFn for our custom command extensions which is 0x34
<CMD> [DATA_X] is the command to be issued and associated parameter as described below

or in the IPMC console window:
[D0 00 <CMD> [DATA_0] [DATA_1] ... [DATA_N]]

Write to Cluster Element BSI: <CMD> = 0x03
      The format for this command is
      Offset Length Description
      0      1      BAY Mask
      1      1      RCE Mask
      2      1      Do interrupt (Does Nothing)
      3      2      Address
      5      2      Length to write
      7      N      Data to write (if length < 16)
                                  (if length > 16, fill with 
                                      incrementing data starting with data)

      NOTE: Including Bays w/o RCEs or which are not present
            in BAY Mask will not result in an error.
    	    Similarly, including RCEs which are not present or are
	        currently being reset will not result in an error, nor
	        will RCEs currently held in reset be released from reset
	    	as a result of issuing this command.
 
Read from Cluster Element BSI: <CMD> = 0x04
      The format for this command is
      Offset Length Description
      0      1      BAY Number
      1      1      RCE Number
      2      2      Address
      4      2      Length to read (Though 2 bytes long, 
                                    IPMI practically limits this to <16)

Read COB Data Board ID PROM: <CMD> = 0x05
      The format for this command is
      Offset Length Description
      0      1      BAY Number

      Returns the ID
      0      8     MSB -> LSB 8 byte ID


RCE Reset Command: <CMD> = 0x0A
      The format for this command is
      Offset Length Description
      0      1      BAY Mask 
      1      1      RCE Mask 

      This command returns
      Offset Length Description
      0      1      Completion Code
      1      1      Mask of Bays with errors

      NOTE: Including Bays w/o RCEs or which are not present
            in BAY Mask will not result in an error.
		    Similarly, including RCEs which are not present or are
		    currently being reset will not result in an error, nor
		    will RCEs currently held in reset be released from reset
		    as a result of issuing this command.


Read from RTM EEPROM: <CMD> = 0x0B
      The format for this command is
      Offset Length Description
      0      1      EEPROM Select (0=RTM Fru Info EEPROM, 1=RMB EEPROM)
      1      1      Address
      2      1      Length to read


Write to RTM EEPROM: <CMD> = 0x0C
      The format for this command is
      Offset Length Description
      0      1      EEPROM Select (0=RTM Fru Info EEPROM, 1=RMB EEPROM)
      1      1      Address
      2      1      Length to write
      3      N      Data to write


Raw I2C Read: <CMD> = 0xF7
      The format for this command is
      Offset Length Description
      0      1      I2C Bus
      1      1      Device Address (7 bit address)
      2      1      Length to read

      This command returns
      Offset Length Description
      0      1      Completion Code
      1      N      Data read
 

Raw I2C Write: <CMD> = 0xF8
      The format for this command is
      Offset Length Description
      0      1      I2C Bus
      1      1      Device Address (7 bit address)
      2      1      Length to write
      3      N      Data to write

      This command returns
      Offset Length Description
      0      1      Completion Code


I2C Test Command:  <CMD> = 0xf6
      The format for this command is
      Offset Length Description
      0      1      The BAY to test I2C devices in
      1      1      The expected RCE mask
      2      1      The expected Power

      This command returns
      Offset Length Description
      0      1      Completion Code
      1      1      Error Code


Get Bay Power Command:  <CMD> = 0x0e
      The format for this command is
      Offset Length Description
      0      1      The BAY number

      This command returns
      Offset Length Description
      0      1      Completion Code
      1      2      Voltage in mV (ADIN)
      3      2      Current in mA


Get Bay Temperatures: <CMD> = 0x0f
      The format for this command is
      Offset Length Description
      0      1      BAY number
      1      1      RCE number (optional)

      This command returns
      Offset Length Description
      0      1      Completion Code
      1      1      Board Temperature
      2      1      Junction Temperature


Get Bay GPIO: <CMD> = 0x12
      The format for this command is
      Offset Length Description
      0      1      BAY number

      This command returns
      Offset Length Description
      0      1      Completion Code

      Which of the following is returned depends on which BAY is requested:

      For a CMB Bay (0-4)
      1      1      RCE Detected Mask
      2      1      RCE Reset Mask
      3      1      RCE BSI Ready Mask
      4      1      RCE FPGA Done Mask
      5      1      CMB Voltage OK Mask
      6      1      CMB Power Allocation (in 1/5 Watts)

      For the CEN Bay
      1      1      CEN Voltage OK Mask
      2      1      SFP Present Mask
      3      1      SFP LOS Mask

      For the RTM Bay
      1      1      RTM Handle Closed
      2      1      RMB Present
      3      1      RMB Enable


Get Bay Raw GPIO: <CMD> = 0x13
      The format for this command is
      Offset Length Description
      0      1      BAY number
      1      1      Register (0=Input, 1=Output, 2=Polarity, 3=Config, 4=Int Mask"

      This command returns
      Offset Length Description
      0      1      Completion Code
      1      N      Register Values for Bank N


Set Monitor Dump Period: <CMD> = 0x07
     The format for this command is
     Offset Length Description
     0      1      Dump Index [0=BAY, 1=RCE, 2=BSI, 3=SFP, 4=FP_DISP, 5=COB_GPIO, 6=GPIO_FULL, 7=RTM, 8=CEN, 9=I2C, 255=ALL]
     1      2      Seconds [0=Never Dump, 0xffff=Default]


Set Monitor Dump Period: <CMD> = 0x08
     The format for this command is
     Offset Length Description
     0      1      Dump Index [0=BAY, 1=RCE, 2=BSI, 3=SFP, 4=FP_DISP, 5=COB_GPIO, 6=GPIO_FULL, 7=RTM, 8=CEN, 9=I2C, 255=ALL]

     Returns
     0      2      Seconds [0=Never Dump]

Dump Monitor Immediate: <CMD> = 0x09
     The format for this command is
     Offset Length Description
     0      1      Dump Index [0=BAY, 1=RCE, 2=BSI, 3=SFP, 4=FP_DISP, 5=COB_GPIO, 6=GPIO_FULL, 7=RTM, 8=CEN, 9=I2C, 255=ALL]


Fixup FRU Info ID: <CMD> = 0x14
      The format for this command is
      Offset Length Description
      0      1      FRU number
 

Set FRU Info Asset Tag: <CMD> = 0x15
      The format for this command is
      Offset Length Description
      0      1      FRU number
      1      N<=32  Asset Tag (NULL terminated ASCII string


Set Standalone Slot Number: <CMD> = 0x11
     The format for this command is
     Offset Length Description
     0      1      Slot Number


Refresh Shelf Info: <CMD> = 0x0D
     The format for this command is
     Offset Length Description
     N/A    N/A    There are no arguments to this command


Cold Data Reset: <CMD> = 0xF9
     The format for this command is
     Offset Length Description
     N/A    N/A    There are no arguments to this command


Set Zombie RCE: <CMD> = 0xFA
     The format for this command is
     Offset Length Description
     0      1      Bay Number
     1      1      RCE Number
     2      1      Zombie State [0=Not a Zombie, 1=BRAINS!]

     When an RCE is marked as a Zombie, the IPMC will not allow it
     to hold up the booting of the board. (For example, it will
     mark the switch port configuration in the DTM BSI as "Disabled"
     if the DPM is not Ready.


Supported IPMI/ATCA commands

These commands can be issued using ipmitool.

Code Block
languagenone
FRU Control Command (cold/warm reset)

ipmitool-pps -I lan -H <shelfmanager> -t <COB Address> -b 0 -A NONE picmg frucontrol <FRU-ID> <OPTION>

Where:
<shelfmanager> is the hostname/IP address of the Shelf Manager (ex. shasta-sm)
<COB address> is the IPMB address of the COB board (ex. 0x82, 0x84, 0x86, 0x88, 0x8a)
<FRU-ID> is the FRU-ID of the IPMC which is 0x00
<OPTION> is:
      0x00      - Cold Reset

Short-hand commands

The following commands are provided as scripts in the bin of our group area. <shelf> is a shelf name. <slot> is a slot number, from 1 to the number of slots in the crate. <element> is the element number, with 0xff meaning all elements and 0xfe meaning all DPMs, as above.

  • ipmi_activate
    Activate a shelf's payload.

    Code Block
    languagenone
    usage: ipmi_activate <shelf> <slot>
    
  • ipmi_deactivate
    Deactivate a shelf's payload.

    Code Block
    languagenone
    usage: ipmi_deactivate <shelf> <slot>
    
  • ipmi_id
    Read COB Data Board ID PROM.

    Code Block
    languagenone
    usage: ipmi_id <shelf> <slot> <board>
    
  • ipmi_read
    Read from the Cluster Element BSI.

    Code Block
    languagenone
    usage: ipmi_read <shelf> <slot> <element> <address> [<length>]
    
  • ipmi_write
    Write the Cluster Element BSI.

    Code Block
    languagenone
    usage: ipmi_write <shelf> <slot> <element> <address> <data> [...]