Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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:

    Code Block
    
    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

...

Here's a couple that will probably be useful:

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

    Code Block
    
    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
    
    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
    
    [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
    
    [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]
    

Custom COB IPMI commands (COB5 and COB6)

pre-COB5 Custom IPMI Commands 

These commands can be issued using ipmitool.

Code Block

...

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)
<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> = 0x4
 

...

 

...

 

...

 

...

 

...

 

...

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> = 0x5
      The format for this command is
      Offset Length Description
      0      1      

...

BAY Number 

...



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

...

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=BAY_GPIO, 6=BAY_GPIO_FULL]
     

...

 1     

...

 

...

2      Seconds [0=Never Dump, 0xffff=Default]

Get 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=BAY_GPIO, 6=BAY_GPIO_FULL]
 
      

...

Returns
      

...

0      

...

2      

...

Seconds [0=Never Dump]

Monitor Dump 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=BAY_GPIO, 6=BAY_GPIO_FULL]

RCE Reset Command: <CMD> = 0x0A      
      The 

...

format for this command is
  

...

    Offset Length 

...

Description
      0    

...

  1  

...

    BAY Mask 

...

Supported IPMI/ATCA commands

These commands can be issued using ipmitool.

...


      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 

...

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
    
    usage: ipmi_activate <shelf> <slot>
    
  • ipmi_deactivate
    Deactivate a shelf's payload.
    Code Block
    
    usage: ipmi_deactivate <shelf> <slot>
    
  • ipmi_boot
    Temporarily set the bootstrap word to the supplied value.
    Code Block
    
    usage: ipmi_boot <shelf> <slot> <element> <bootstrap>
    
  • ipmi_bootstrap
    Permanently set the bootstrap word to the supplied value. If omitted, print the current value of the bootstrap word.
    Code Block
    
    usage: ipmi_bootstrap <shelf> <slot> <element> [<value>]
    
  • ipmi_eeprom
    Read and print the EEPROM contents at the supplied address and length combination.
    Code Block
    
    usage: ipmi_eeprom <shelf> <slot> <board> <address> [<length>]
    
  • ipmi_id
    Read COB Data Board ID PROM.
    Code Block
    
    usage: ipmi_id <shelf> <slot> <board>
    
  • ipmi_read
    Read from the Cluster Element BSI.
    Code Block
    
    usage: ipmi_read <shelf> <slot> <element> <address> [<length>]
    
  • ipmi_write
    Write the Cluster Element BSI.
    Code Block
    
    usage: ipmi_write <shelf> <slot> <element> <address> <data> [...]
    

Custom COB IPMI commands for COB 5

These commands can be issued using ipmitool.

...

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 EERPOM: <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 (Limited by IPMI to 24 bytes)

Write to RTM EERPOM: <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 (

...

Limited by IPMI to 22 bytes)

Set FP SFP Switch Group: <CMD> = 0x10
     

...

 The format for this command 

...

is
      

...

Offset Length Description
    

...

  0    

...

 

...

 

...

1      

...

SFP+ Mask
     

...

 1     

...

 

...

1 

...

 

...

 

...

 

...

 

...

 Group Number 0x00 = No Group
				 0x01 - 0x10 Group with Slot at Physical address 0x01 - 0x10
				 0x11 - 0xFF Arbitrary Group Numbers

I2C Read: <CMD> = 

...

0xF7
 Low level I2C Read
  

...

 

...

 

...

 

...

 

...

The 

...

format 

...

for this command is

      Offset Length Description
      0      1      I2C Bus
      1  

...

 

...

 

...

 

...

 

...

1      

...

Device 

...

Address 

...

(8 bit address)
      2      1     

...

 

...

Length 

...

to 

...

read

 

...

 

...

 

...

 

...

 

...

 This command returns
 

...

 

...

 

...

 

...

 

...

 

...

Offset 

...

Length 

...

Description

...

    

...

 

...

 

...

0 

...

 

...

 

...

 

...

 

...

 

...

1 

...

    

...

 

...

Completion 

...

Code
 

...

 

...

 

...

 

...

 

...

 

...

1 

...

    

...

 

...

N   

...

 

...

 

...

 

...

Data read


I2C Write: <CMD> = 0xF8
      Low level I2C Write
 
      The format for this command is
      Offset Length Description
      0      1      

...

I2C 

...

Bus
      1      1      Device Address 

...

(8 bit address)
      2      1  

...

    Length to 

...

write
      

...

3      

...

N      

...

Data to 

...

write


      

...

This command 

...

returns
      Offset Length Description
      0      1      

...

Completion 

...

Code

Cold Data Reset: <CMD> = 

...

0xF9
     The Cold Data Reset command will reset the IPMC and mark the 
    

...

 Cold Data Journal 

...

as invalid. This mimics removing power from the IPMC.

Set 

...

Zombie 

...

RCE: <CMD> = 

...

0xFA
      

...

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.

      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!]

Set Bay Power: <CMD> =

...

 0xFB (This is only intended to be used for HW debugging as immediately turns on/off power to a Bay.)
      The format for this command is
      Offset Length Description
      0      1

...

    

...

 

...

 

...

BAY MASK



Supported IPMI/ATCA commands

These commands can be issued using ipmitool.

Code Block
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, 1=RCE, 2=BSI, 3=SFP, 4=FP_DISP, 5=BAY_GPIO, 6=BAY_GPIO_FULL]

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

      This command0x01 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.

Cold Data Reset: <CMD> = 0xF9
     The Cold Data Reset command will reset the IPMC and mark the 
     Cold Data Journal as invalid. This mimics removing power from the IPMC.

Set Zombie RCE: <CMD> = 0xFA
      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.

      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!]

Set Bay Power: <CMD> = 0xFB (This is only intended to be used for HW debugging as immediately turns on/off power to a Bay.)
      The format for this command is
      Offset Length Description
      0      1      BAY MASK


Warm 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
    usage: ipmi_activate <shelf> <slot>
    
  • ipmi_deactivate
    Deactivate a shelf's payload.

    Code Block
    usage: ipmi_deactivate <shelf> <slot>
    
  • ipmi_boot
    Temporarily set the bootstrap word to the supplied value.

    Code Block
    usage: ipmi_boot <shelf> <slot> <element> <bootstrap>
    
  • ipmi_bootstrap
    Permanently set the bootstrap word to the supplied value. If omitted, print the current value of the bootstrap word.

    Code Block
    usage: ipmi_bootstrap <shelf> <slot> <element> [<value>]
    
  • ipmi_eeprom
    Read and print the EEPROM contents at the supplied address and length combination.

    Code Block
    usage: ipmi_eeprom <shelf> <slot> <board> <address> [<length>]
    
  • ipmi_id
    Read COB Data Board ID PROM.

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

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

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