...
- 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 The format for this command is Offset Length Description 0 1 |
...
BAY |
...
Mask |
...
...
|
...
|
...
|
...
|
...
|
...
1 1 |
...
RCE Mask |
...
This command returns |
...
|
...
Offset Length Description |
...
Supported IPMI/ATCA commands
These commands can be issued using ipmitool.
...
|
...
|
...
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, |
...
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.
...
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> [...]