...
- Create the software image to upload (called the firmware by PPS,
hpm1fw.img
) bymake hpm
From the same network as the shelf manager (currently cds), execute:
Code Blocknoformat 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 upgradinghpm1fw.img
is the path to the software image file created by make hpm
...
Here's a couple that will probably be useful:
To
activatedeactivate the payload (initiate
M1M4-
>M2>M5 transition):
Code Block language none ipmitool-pps -I lan -H shlfmgr02 -t 0x86 -b 0 -A NONE picmg policy set 0 2 10
To
deactivateactivate the payload (initiate
M4M1-
>M5>M2 transition):
Code Block language none 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 language none [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)
Code Block language none [B8 00 41 0A 40 00]
Set Handle Switch
Code Block language none [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
These commands can be issued using ipmitool.
...
Reset the SDR repository
Code Block language none [B8 00 33 0A 40 00]
Synchronization Clock Interface
These commands can be used to enable/disable the Synchronization Clock Interface buffers on the COB. This can also (more correctly) be driven via the ATCA e-Keying mechanism. These commands will override whatever e-keying has taken place.
Code Block | ||
---|---|---|
| ||
GET:
ipmitool -I lan -H <shelf_ip> -t <slot_ipmb_address> -b 0 -A NONE raw 0x2e 0x38 0x0a 0x40 0x00 0x00 0x00 <pin>
SET:
ipmitool -I lan -H <shelf_ip> -t <slot_ipmb_address> -b 0 -A NONE raw 0x2e 0x39 0x0a 0x40 0x00 0x00 0x00 <pin> <state>
Where:
<shelf_ip> is either the IP address or hostname of the shelf manager
<slot_ipmb_address> is (0x80 + slot*2) for the ASIS 2, 5, and 6 slot shelves. (Not for the 14 slot.)
<pin> is
BP_CLK0_OE = 0x30
BP_CLK1_OE = 0x31
BP_CLK2_OE = 0x32
BP_CLK3_OE = 0x33
BP_CLK4_OE = 0x34
BP_CLK5_OE = 0x35
<state> 1 for enabled, 0 for disabled.
|
Custom COB 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, 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 |
...
|
...
Supported IPMI/ATCA commands
These commands can be issued using ipmitool.
...
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 |
...
|
...
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.
...
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 | ||
---|---|---|
| ||
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 language none usage: ipmi_activate <shelf> <slot>
ipmi_deactivate
Deactivate a shelf's payload.Code Block language none usage: ipmi_deactivate <shelf> <slot>
ipmi_id
Read COB Data Board ID PROM.Code Block language none usage: ipmi_id <shelf> <slot> <board>
ipmi_read
Read from the Cluster Element BSI.Code Block language none usage: ipmi_read <shelf> <slot> <element> <address> [<length>]
ipmi_write
Write the Cluster Element BSI.Code Block language none usage: ipmi_write <shelf> <slot> <element> <address> <data> [...]