Chapter 2. Using the L1 and L2 Controllers

This chapter describes how to use the L1 and L2 controllers to monitor and manage the SGI Origin 3000 series servers, SGI Origin 300 servers, SGI Origin 300 servers with NUMAlink, SGI Altix 350 systems, SGI Altix 3000 family of servers and superclusters, Onyx 300 graphics systems, SGI Onyx 3000 graphics systems, and Silicon Graphics Prism Visualization Systems, and SGI in the following sections:

Monitoring Feedback and Entering Commands

You can monitor the L1 controller status and error messages on the L1 controller's liquid crystal display (LCD) located on the front panel of the individual bricks. The L1 controller and L2 controller status and error messages can also be monitored at your system console.

The L2 controller hardware includes L2 controller firmware. To access the L2 controller firmware, you must connect a system console, such as the SGIconsole or a dumb terminal, to the L2 controller. For instructions on connecting a console to the L2 controller, see your server or graphics system owner's guide.

The L2 firmware is always running as long as power is supplied to the L2 controller. If you connect a system console to the L2 controller's console port, the L2 prompt appears.


Note: See “Upgrading L1 and L2 Firmware” for instructions to upgrade your L1 controller firmware and L2 controller firmware.

The system console allows you to monitor and manage your server or graphics system by entering L1 controller commands. You can also enter L2 controller commands to monitor and manage your system if your system has L2 controller hardware and a system console or if you are using an SGIconsole as your system console. See Chapter 3, “L1 and L2 Controller Commands” for a list of L1 and L2 controller commands you can use to monitor and manage the various devices.

Operating the L2 Controller

The L2 firmware operates in one of the following three modes, each of which is discussed in the sections that follow.

  • L2 mode. The L2 prompt is visible and all input is directed to the L2 command processor.

  • Console mode from L2. Output from the system is visible and all input is directed to the system.

  • L1 mode from L2. The prompt from a single L1 is visible, and all input is directed to that L1 command processor.

L2 Mode

After a connection to the L2 controller, the following prompt appears, indicating that the L2 is ready to accept commands:

L2> 

Common operations are discussed in the following sections:

Viewing System Configuration

You can use the L2 config command to view the current system configuration from a brick level, as follows:

L2> config
127.0.0.1:
127.0.0.1:0:0 - 003c01
127.0.0.1:0:1 - 004c01
127.0.0.1:0:2 - 002c01
127.0.0.1:0:3 - 001x01
L2>

As shown above, config produces a list of bricks in the system and the system controller address of each brick. This is similar to the output from using the config command on the L1 with the addition of the L2 IP address and USB port number. The structure of the brick's address is as follows:

a.b.c.d:x:y - rrrtss.p

where:

a.b.c.d  

is the IP address of the L2. (In the example above, the IP address is 127.0.0.1.)

x 

is the USB port number. (In the example above, the port number is zero.)

y 

is the L1 index, as follows:

0 - local brick (the brick to which the USB cable is attached). Other than 0, the meaning of other values are system/device specific.

rrr 

is the rack number

t 

is the type of brick (C–brick, I–brick, and so on)

ss 

is the slot number

p 

is the partition (not present if the system is not partitioned).

A brick is identified by its rack and slot. In the example shown above, 003c01 is a C–brick in rack 3 and unit position 1.

Setting Command Targeting

If a command is not understood by the L2 system controller, in general it is passed on to the L1 system controllers. The destination determines which L1s receive the command. A destination is a range of racks and slots, specified as follows:

rack <rack list> slot <slot list> 

The <rack list> specifies a list of racks. This can be a list delimited by commas, such that 2,4,7 specifies racks 2, 4, and 7. You can use a dash to specify a range of racks, such that 2-4 specifies racks 2, 3, and 4. Both nomenclatures can be combined, such that 2-4,7 specifies racks 2, 3, 4, and 7.

You can specify the <slot list> using the same nomenclature. The slot number, sometimes referred to as a bay number, is the unit position number located on the rack, slightly above where the bottom of the brick sits. Each rack unit position number is located toward the top of the two lines that mark the unit position that the number represents. For example, the rack numbering for a brick located in slot 10 would appear on the left front side of the rack, as shown in Figure 2-1:

Figure 2-1. Rack Numbering

Rack Numbering

The slot <slot list> is optional; if not given, then all slots in the specified rack(s) are implied. You should avoid specifying a rack list and slot list that include multiple racks and slots, such as rack 2-4,7 slot 1-8,11,13. Generally, a rack and slot together are used to specify an individual brick.

You can use the aliases r and s to specify rack and slot, respectively. You can use the alias all or * in either or both the <rack list> and the <slot list> to specify all racks and all slots.

To send a command to all bricks in a partition, type the following:

l2> partition <partition> <cmd>

Default Destination 

When the L2 starts, the default destination is set to all racks and all slots. You can determine the default destination by using the destination command, as follows:

L2> destination 
all racks, all slots
L2>

The following command sets the destinations to rack 2 and 3, all slots:

L2> r 2,3 destination 
2 default destination(s) set
L2>

The following example shows what bricks are found in the default destination. If you type a command not understood by the L2, the command is sent to these bricks.


Note: In the current implementation, adding a brick to either rack 2 or 3 would not automatically include it in the default destination. You would need to reset the default destination.


L2> destination 
002c01 (127.0.0.1:0:2)
003c01 (127.0.0.1:0:0)
L2>

The following command resets the default destination to all racks and all slots:

L2> destination reset 
default destination reset to all racks and slots
L2>

Current Destination 

The current destination is a range of racks and slots for a given command. For example, the following command sends the command <L1 command> to all bricks in racks 2, 3, 4, and 7:

L2> r 2-4,7 <L1 command> 

This is a one-time destination.

Command Interpretation

Some L2 commands are the same as the L1 commands. In many cases, this is intentional because the L2 provides sequencing that is necessary for a command to function correctly.

When L1 and L2 commands are similar, you can assure that an L1 command is entered for the bricks in the current destination by preceding <L1 command> with the L1 command (this is a one-time destination), as follows:

L2> r 2-4,7 l1 <L1 command> 

Viewing Information, Warnings, and Error Messages

All information, warnings, and error messages generated by any of the system controllers are in the following form:

002c01 ERROR: invalid arguments for `ver' command, try “help ver”

The general format includes a brick identification and the type of message, followed by the message. A message may be the result of an invalid command, as shown in the example, or the result of tasks running on the L1, such as the environmental monitor.

Each L1 has a log of local events. Use the L1 command log to view events on any of the L1s.

Powering On, Powering Off, and Resetting the System

The system can be powered on and off with the power command. This command is interpreted by the L2, because the bricks must be powered on in a specific order.

L2> power up 
L2>

The power command may require several seconds to several minutes to complete. In the example above, all racks and slots in the default destination are affected. Any errors or warnings are reported as described in the prior “Viewing Information, Warnings, and Error Messages” section.

To power on or power off a specific brick, specify a current destination, as follows:

L2> r 2 s 5 power up 
L2>

You can enter the power down and reset commands in a similar way, as follows:

L2> partition <partition number> <power down or reset>

Console Mode from L2

In console mode, all output from the system is visible and all input is directed to the system.

To enter console mode from L2 mode, press Ctrl+D at the L2 prompt and observe the response, as follows:

L2> Ctrl+D 
entering console mode 002c01 console, <CTRL_T> to escape to L2
.
<system output appears here>
.

To return to L2 mode from console mode, press Ctrl+T, as follows:

Ctrl+T 
escaping to L2 system controller 
L2>

At this point, you can enter any L2 or L1 command. When the command completes, the L2 returns to console mode, as follows:

Re-entering console mode 002c01 console, <CTRL_T> to escape to L2

To permanently engage the L2 mode, press Ctrl+T and then type the l2 command, as follows:

Ctrl+T 
escaping to L2 system controller
L2> l2 
L2 command processor engaged, <CTRL_D> for console mode.
L2>

Console Selection

The L2 system controller detects the system console based on two things - the last brick and node/subchannel to produce output and the brick with the lowest rack and slot number.

Enter the select command alone to show the current console mode settings as follows:


L2> select
known system consoles (non-partitioned)

        007c11 - L2 detected

current system console

console input: 007c11 console
console output: not filtered

On a partitioned system, enter the select command alone to show the current console mode settings as follows:

L2>select

known system consoles (partitioned)

        partition  1: 007c11 - L2 detected
        partition  2: 007c14 - L2 detected
        partition  3: 007c20 - L2 detected
        partition  4: 007c27 - L2 detected
        partition  5: 007c30 - L2 detected
        partition  6: 007c17 - L2 detected

current system console

console input: partition 1, 007c11 console
console output: any brick partition 1
L2>

When a system is partitioned, the L2 prompt shows the partition number of the partition you selected, as follows:

L2>sel p 2
console input: partition 2, 001c24 console0
console output: any brick partition 2
L2:p2>

The following are common subchannels associated with console communications on an SGI Altix system:

  • Subchannel 0A specifies Node 0, CPU A.

  • Subchannel 0C specifies Node 0, CPU B.

  • Subchannel 1A specifies Node 1, CPU A.

  • Subchannel 1C specifies Node 1, CPU B.

  • Subchannel 2A specifies Node 2, CPU A.

  • Subchannel 2C specifies Node 2, CPU B.

  • Subchannel 3A specifies Node 3, CPU A.

  • Subchannel 3C specifies Node 3, CPU B.

  • Node 0 console subchannel.

  • Node 1 console subchannel.

  • Node 2 console subchannel

  • Node 3 console subchannel

The following are common subchannels associated with console communications on an SGI Origin 3900 systems:

  • Subchannel 0A specifies Node 0, CPU A.

  • Subchannel 0B specifies Node 0, CPU B.

  • Subchannel 0C specifies Node 0, CPU C.

  • Subchannel 0D specifies Node 0, CPU D.

  • Subchannel 1A specifies Node 1, CPU A.

  • Subchannel 1B specifies Node 1, CPU B.

  • Subchannel 1C specifies Node 1, CPU C.

  • Subchannel 1D specifies Node 1, CPU D.

  • Subchannel 2A specifies Node 2, CPU A.

  • Subchannel 2B specifies Node 2, CPU B.

  • Subchannel 2C specifies Node 2, CPU C.

  • Subchannel 2D specifies Node 2, CPU D.

  • Subchannel 3A specifies Node 3, CPU A.

  • Subchannel 3B specifies Node 3, CPU B.

  • Subchannel 3C specifies Node 3, CPU C.

  • Subchannel 3D specifies Node 3, CPU D.

  • Node 0 console subchannel.

  • Node 1 console subchannel.

  • Node 2 console subchannel.

  • Node 3 console subchannel.

The following common subchannels are associated with console communications on all other MIPS/IRIX systems:

  • Subchannel 0 specifies CPU A.

  • Subchannel 1 specifies CPU B.

  • Subchannel 2 specifies CPU C.

  • Subchannel 3 specifies CPU D.

  • Subchannel 4 is the console subchannel.

To select a subchannel as the current subchannel, for a specific node/CPU, perform the following:

L2> select sub 0a

or

L2> select sub 0c

or

L2> select sub 2a

and so on.

For console subchannels, perform the following:

L2> select sub console0

or

L2> select sub console1

and so on.

The output console input: 001c05 console0 shows that the L2 will send console input to brick 001c05 and the subchannel to be used is the console0 subchannel.

To change system console status from one brick to the attached C-brick, use the select <rack> <slot> command:


001c05-L2> select r 2 s 1 
console input: 001c05 console
console output: not filtered.
001c05-L2>

When selecting the rack and slot for the console, you could also select <rack>.<slot>, as follows:

001c05-L2> select 2.4

To change the subchannel used on the selected brick, use the select command followed by the subchannel number or the word console:


001c05-L2> select sub 0A
console input: 001c05 CPU 0A
console output: not filtered.
001c05-L2>

L1 Mode from L2

In L1 mode, the prompt from a single L1 is visible, and all input is directed to that L1 command processor.

To enter L1 mode, type the l1 command and specify a rack and a slot, as follows:

L2> r 2 s 1 l1 
enterling L1 mode 002c01, <CTRL-T> to escape to L2

002c01-L1>

To return to L2 mode, press Ctrl+T, as follows:

002c01-L1> Ctrl+T 
escaping to L2 system controller, <CTRL-T> to send escape to L1
L2>

At this point, you can enter any L2 command. When the command completes execution, the L2 returns to L1 mode, as follows:

002c01-L1>

To permanently engage the L2 mode, press Ctrl+T and type the l2 command, as follows:

002c01-L1> Ctrl+T 
escaping to L2 system controller, <CTRL-T> to send escape to L1
L2> l2 
L2 command processor engaged, <CTRL-T> for console mode.
L2>


Note: If you press Ctrl+D while in L1 mode, the L1 goes into console mode. Output from the system console will not be visible because the L2 never shows system console output unless the L2 is in console mode. To return to the L1 prompt at this point, press Ctrl+T twice, followed by the L1 command, to lock the L1 back into L1 mode.


003c01> Ctrl+D 

entering console mode 002c01 console, <CTRL-T> to escape to L1
Ctrl+T 
escaping to L2 system controller, <CTRL-T> to send escape to L1
L2> Ctrl+T 
escaping to L1 system controller
003c01-L1> l1 
L1 command processor engaged, <CTRL-T> to exit.
003c01-L1>

Operating the L1 Controller

The L1 controller operates in one of the following two modes, each of which is discussed in the sections that follow:

  • L1 mode. The L1 prompt is visible and all input is directed to the L1 command processor.

  • Console mode from L1 mode. Output from the system is visible and all input is directed to the system.


    Note: The console mode from L1 mode is not supported if the system contains an L2 controller.


L1 Mode

The brick with which the L1 communicates in console mode is the system console or global master, and you can view and set it with the select command. By default, the C-brick attempts to communicate with its local CPUs when console mode is entered. If the system has been powered on and either one of the bricks received a request to be the system console, then the C-brick attempts to communicate with that brick.

When you see a prompt of the following form, the L1 is ready to accept commands.

001c19-L1> 

Common operations include the following and are discussed in the sections that follow:

Viewing System Configuration

An L1 has limited knowledge of the system configuration. A C–brick only has information about its attached I/O brick and, if another C–brick is attached to it, information about that C–brick and its attached I/O brick. An I/O brick only has information about its attached C–brick. An R–brick only has information about itself.

You can view a brick's configuration information with the config command, as follows:

003c01-L1> config 
:0 - 003c01
:1 - 004i01
:2 - 002c01
:3 - 001x01
003c01-L1>

Bricks are referenced by their racks and slot or bay locations. These values are stored in nonvolatile memory on the L1. Virtually all system controller communications require that each brick has a valid and unique rack and slot.

If a brick is not set with its rack and slot number, it appears in the output of an L2 config command, as shown in the following example:


L2> config
137.38.88.82.1.0 ---c-- (no rack/slot set)
L2>

To set the rack and slot for a brick, address it by its IP address, USB port, and L1 controller index. Note the following example:


L2> 137.38.88.82:1:0 brick rack 1
L2> 137.38.88.82:1:0 brick slot 8
L2> 137.38.88.82:1:0 reboot_l1
INFO: closed USB /dev/sgil1_0
INFO: opened USB /dev/sgil1_0
L2>config
137.38.88.82:1:0 001c08
L2.

The following example shows how to set rack 1, slot 8, for the C-brick with an IP address of 127.0.0.1:

L2> config 
127.0.0.1:
127.0.0.1:0:0 - ---c--
127.0.0.1:0:1 - 001i01
127.0.0.1:0:5 - 001c05
L2> :0:0 brick rack 1 
brick rack set to 001.
L2> :0:0 brick slot 8
brick slot set to 08.
L2> :0:0 reboot_l1 
INFO: closed USB /dev/sgil1_0
INFO: opened USB /dev/sgil1_0
L2>
L2> config 
127.0.0.1:
127.0.0.1:0:0 - 001c05
127.0.0.1:0:1 - 001i01
127.0.0.1:0:5 - 001c08
L2>

To set the rack and slot from the L1 prompt, simply use the brick rack and brick slot commands. To set the rack and slot on one of the attached bricks (an attached I/O brick, C-brick, or a C-brick's I/O brick), use the L1 targeting commands iia, iib or nia, nib, as follows:


001c05-L1> config 
:0 - 001c05
:1 - ---i--
:5 - 001c08
:6 - 001p01
001c05-L1> iia brick rack 4 
---i--:
brick rack set to 004.
001c05-l1> iia brick slot 1
---i--
brick slot set to 01
001c05-l1> iia reboot_l1 
001c05 ERROR: no response from ---i--
001c05-L1> config 
:0 - 001c05
:1 - 004i01
:5 - 001c08
:6 - 001p01
001c05-L1>

In the preceding code, the number after the colon symbol (:) indicates the following:

0 = local brick
1 = IIA (II0)
2 = IIB (II1)
5 = NIA (Nl0)
10 = NIB (N11)

Only 0 has a valid meaning, other values are arbitrary based on the system type.

To obtain a detailed configuration explanation from the L1 perspective, enter the following:


001c05-L1> config verbose

Command Targeting

All commands affect only the local brick, unless the command is prefixed with an asterisk (*). To target a command to all bricks (including the local brick), prefix the command, as shown in the following example:

003c01-L1> * version 
003c01:
L1 0.7.37 (Image A), Built 05/24/2001 14:59:42 [P1 support]
004i01:
L1 0.7.37 (Image A), Built 05/24/2001 14:59:42 [P1 support]
002c01:
L1 0.7.37 (Image A), Built 05/24/2001 14:59:42 [P1 support]
001x01:
L1 0.7.37 (Image A), Built 05/24/2001 14:59:42 [P1 support]
003c01-L1>

The L1 also supports a L1> <rack>.<slot> <command> target. For example,

003c01-L1> 4.1 version
004i01:
L1 0.7.37 (Image A), Built 05/24/2001 14:59:42 [P1 support]
003c01-L1>

You can also target commands to a single attached brick with either the iia, iib, or nia, nib command, as follows:

003c01-L1> iia version
004i01:
L1 0.7.37 (Image A), Built 05/24/2001 14:59:42 [P1 support]
003c01-L1>

Viewing Information, Warnings, and Error Messages

All information, warnings, and error messages generated by any of the system controllers are in the following form:

002c01 ERROR: invalid arguments for `ver' command, try “help ver”

The general format of the message includes a brick identification (this is not present if the command was to the local brick only), type of message, and the message. These messages can be the result of an invalid command (as shown in the example) or from tasks running on the L1, such as the environmental monitor.

Each L1 has a log of local events. Use the L1 command log to view the event on any of the L1s.

Powering On, Powering Off, and Resetting the Brick

You can power on and power off the brick with the power command, as follows:

003c01-L1> power up 
003c01-L1>

If an L2 is not present, you need to power on, power off, and reset the system from one of the C–bricks. You do so by targeting all bricks, as follows:

003c01-L1> * power up 
003c01-L1>

This command can require from several seconds to several minutes to complete.

You can enter the power off and reset commands in similar ways.

Console Mode from L1

In console mode, output from the system is visible and all input is directed to the system.

To enter console mode, press Ctrl+D at the L1 prompt, as follows:

003c01-L1> Ctrl+D 
entering console mode 003c01 console, <CTRL-T> to escape to L1
.
<system output appears here> 
.

To return to L1 mode, press Ctrl+T, as follows:

Ctrl+T 
escaping to L1 system controller
003c01-L1>

At this point, you can enter any L1 command. When the command completes execution, the L1 returns to console mode, as follows:

re-entering console mode 003c01 console, <CTRL-T> to escape to L1

To permanently engage the L1 mode, press Ctrl+T and then type the l1 command, as follows:

Ctrl+T 
escaping to L1 system controller
003c01-L1> l1 
L1 command processor engaged, <CTRL-D> for console mode.
003c01-L1>

Console Selection

The brick with which the L1 communicates in console mode is the system console or global master, and you can view and set it with the select command. By default, the C–brick attempts to communicate with its local CPUs when it enters console mode. If the system has been powered on and either one of the bricks has a request to be the system console, then the C–brick attempts to communicate with that brick. Enter the select command alone to show the current console mode settings, as follows:

003c01-L1> select 
console input: 003c01 console
console output: not filtered.

The following are common subchannels associated with console communications on an SGI Altix system:

  • Subchannel 0A specifies Node 0, CPU A.

  • Subchannel 0C specifies Node 0, CPU B.

  • Subchannel 1A specifies Node 1, CPU A.

  • Subchannel 1C specifies Node 1, CPU B.

  • Subchannel 2A specifies Node 2, CPU A.

  • Subchannel 2C specifies Node 2, CPU B.

  • Subchannel 3A specifies Node 3, CPU A.

  • Subchannel 3C specifies Node 3, CPU B.

  • Node 0 console subchannel.

  • Node 1 console subchannel.

  • Node 2 console subchannel

  • Node 3 console subchannel

The following are common subchannels associated with console communications on an SGI Origin 3900 systems:

  • Subchannel 0A specifies Node 0, CPU A.

  • Subchannel 0B specifies Node 0, CPU B.

  • Subchannel 0C specifies Node 0, CPU C.

  • Subchannel 0D specifies Node 0, CPU D.

  • Subchannel 1A specifies Node 1, CPU A.

  • Subchannel 1B specifies Node 1, CPU B.

  • Subchannel 1C specifies Node 1, CPU C.

  • Subchannel 1D specifies Node 1, CPU D.

  • Subchannel 2A specifies Node 2, CPU A.

  • Subchannel 2B specifies Node 2, CPU B.

  • Subchannel 2C specifies Node 2, CPU C.

  • Subchannel 2D specifies Node 2, CPU D.

  • Subchannel 3A specifies Node 3, CPU A.

  • Subchannel 3B specifies Node 3, CPU B.

  • Subchannel 3C specifies Node 3, CPU C.

  • Subchannel 3D specifies Node 3, CPU D.

  • Node 0 console subchannel.

  • Node 1 console subchannel.

  • Node 2 console subchannel.

  • Node 3 console subchannel.

The following five common subchannels are associated with console communications on all other MIPS/IRIX systems:

  • Subchannel 0 specifies CPU A.

  • Subchannel 1 specifies CPU B.

  • Subchannel 2 specifies CPU C.

  • Subchannel 3 specifies CPU D.

  • Subchannel 4 is the console subchannel.

To select a subchannel as the current subchannel, for a specific node/CPU, perform the following:

L1> select sub 0a

or

L1> select sub 0c

or

L1> select sub 2a

and so on.

For console subchannels, perform the following:

L1> select sub console0

or

L1> select sub console1

and so on.

The output console input: 003c01 console shows that the L1 will send console input to brick 003c01 and the console subchannel will be used.

To change system console status from one brick to the attached C–brick, use the select command, followed by the rack and slot number of the attached C–brick, as follows:

003c01-L1> select r 2 s 1 
console input: 002c01 console
console output: not filtered.
003c01-L1> 

To change the subchannel used on the selected brick, use the select command, followed by the subchannel number or the word console, as follows:

003c01-L1> select 2 
console input: 002c01 CPU C
console output: not filtered.
003c01-L1>

During the boot process on a multi-rack system, there is a window of time during which both C–bricks are producing output. This resulting output may be somewhat jumbled at the L1. However, you can filter the console output so that the L1 shows output only from the brick chosen to receive console input. You can turn filtering on and off with the select filter command.

If you try to communicate with a brick that is not responding, a time-out condition results, as follows:

003c01-L1> 
entering console mode 002c01 console, <CTRL-T> to escape to L1
no response from 002c01 bedrock console UART:UART_TIMEOUT

When this time-out condition occurs, either the brick is hung or the subchannel is incorrect.

Upgrading L1 and L2 Firmware

L1 and L2 firmware is currently distributed as part of your software package. This collection of software packages contains L1 and L2 firmware.

The L1 and L2 firmware binary, and the utilities used to update it, are stored in /usr/cpu/firmware/sysco.

The System Controller Software CD is not shipped by default. You can download the System Controller Software 1.x package from http://support.sgi.com/ or order it on CD-ROM (P/N 812-1138-007). Contact you SGI account representative if you need assistance obtaining the software package.

Upgrading L1 Firmware

The L1 firmware consists of the following three parts:

  • Boot image

  • Image A

  • Image B

At boot time, the boot image validates images A and B and, if not instructed otherwise, it executes the newer of the two images. Because the L1 is running one of the two images, the image not in use is the image that will be overwritten when the firmware is upgraded. You need to reboot any L1 update either by power–cycling the brick or by using the L1 command reboot_l1. See the flash and reboot_l1 commands in Chapter 3, “L1 and L2 Controller Commands” for descriptions of these commands.

Typically, you will upgrade the firmware through the network connection from the SGIconsole to the L2, as follows:

$> /usr/cpu/firmware/sysco/flashsc --12 10.1.1.1 /usr/cpu/firmware/sysco/l1.bin all 

This updates all the bricks in the system. You can update individual bricks by replacing all with a rack and slot number, as follows:

$> /usr/cpu/firmware/sysco/flashsc --12 10.1.1.1 /usr/cpu/firmware/sysco/l1.bin 1.19 

This updates only the brick in rack 1, slot 19.

Upgrading L2 Firmware

The L2 firmware consists of the following two parts:

  • Boot image

  • Kernel image

Typically, you will upgrade the firmware through the network connection from the SGIconsole to the L2, as follows:

$> /usr/cpu/firmware/sysco/flashsc --12 10.1.1.1 /usr/cpu/firmware/sysco/l2.bin local

Once this command has executed, You must power–cycle the L2 to run the new image. To do this, you can use the L2 command reboot_l2.

If the L2 update fails, there is no back-up second image as there is with the L1. The L2, however, will not run the kernel image if it is not valid. At this point, the L2 is intelligent enough for you to upgrade it through its console port, as follows:

$> /usr/cpu/firmware/sysco/flashsc --l2recover /usr/cpu/firmware/sysco /l2.bin <device>

where <device> equals --dev or --serial with the appropriate argument for the option entered.

Output will indicate that the firmware image is being erased and then rewritten. The flash image is quite large (almost 2 MB), so updating the flash takes several minutes. You must power–cycle the L2 to run the new image by using the L2 command reboot_l2.

Identifying Bricks

Bricks are referenced by their racks and slot or bay locations. These values are stored in non-volatile memory on the L1. Virtually all system controller communication requires that each brick have a valid and unique rack and slot. If a brick does not have these, the output of an L2 config command will reflect that as shown in the following example:

L2> config
137.38.88.82.1.0 ---c-- (no rack/slot set)
L2>

To set the rack and slot for a brick, address it by its IP address, USB port, and L1 controller index. The following is an example:

L2> 137.38.88.82:1:0 brick rack 3
L2> 137.38.88.82:1:0 brick slot 10
L2> 137.38.88.82:1:0 reboot_l1
L2> config
137.38.88.82:1:0 003c10
L2>

The following example shows how to set rack 3, slot 1, for the C–brick with the IP address 127.0.0.1:

L2> config 
127.0.0.1:
127.0.0.1:0:0 - ---c--
127.0.0.1:0:1 - 004i01
127.0.0.1:0:5 - 002c01
127.0.0.1:0:6 - 001x01
L2> :0:0 brick rack 3 
brick rack set to 003.
L2> :0:0 brick slot 1 
brick slot set to 01.
L2> :0:0 reboot_l1 
WARNING: can't read packet on L1 connection (/dev/sgil1_0), status: IRouter:read failed - read error 
INFO: closed USB /dev/sgil1_0
INFO: opened USB /dev/sgil1_0
WARNING: last error on L1 connection (/dev/sgil1_0) repeated 64 times
 
L2>
L2> config 
127.0.0.1:
127.0.0.1:0:0 - 003c01
127.0.0.1:0:1 - 004i01
127.0.0.1:0:5 - 002c01
127.0.0.1:0:6 - 001x01
L2>

If the brick is connected to an L2 other than the local L2, you would enter the following:

L2><ipaddress>:<USB port>:<L1 index> <command>

To set the rack and slot from the L1 prompt, simply use the brick rack and brick slot commands. To set the rack and slot on one of the attached bricks (an attached I/O brick, C–brick, or a C–brick's I/O brick), use the L1 targeting commands iia, iib, or nia, nib. See the following example.

003c01-L1> config verbose
:0 - 003c01 (local)
:1 - ---i-- (IIA)
:5 - 002c01 (NIA)
:6 - 001x01 (IIA NIA)
003c01-L1> iia brick rack 4 
---i--:
brick rack set to 004.
003c01-l1> iia reboot_l1 
003c01 ERROR: no response from ---i--
003c01-L1> config 
:0 - 003c01 (local
:1 - 004i01 (IIA)
:5 - 002c01 (NIA)
:6 - 001x01 (IIA NIA)
003c01-L1>

Status and Error Messages

This section lists and describes the status and error messages generated by the L1 and L2 controllers. It also explains how to resolve the errors, if action is necessary.

L1 Controller Tasks and Messages

The L1 controller front panel display, located on the front panel of individual bricks, consists of a 2-line, 12-character liquid crystal display (LCD) that provides the following:

  • Brick identification

  • System status

  • Warning of required service or failure

  • Identification of failed components


    Note: Besides the L1 control display, if you have an L2 controller, you can see the L1 controller messages on the L2 controller touch display located on the front door of the leftmost compute rack (position 001). If you have a system console, you can also see the L1 controller messages on your system console.


Table 2-1 lists the L1 controller messages.


Note: Note that in Table 2-1, a voltage warning occurs when a supplied level of voltage is below or above the nominal (normal) voltage by 10 percent. A voltage fault occurs when a supplied level is below or above the nominal by 20 percent.


Table 2-1. L1 Controller Messages

L1 System Controller Message

Message Meaning and Action Needed

Internal voltage messages:

 

ATTN: x.xV high fault limit reached @ x.xxV

30-second power off sequence for the brick (or system, if no backup is available), server, or module.

ATTN: x.xV low fault limit reached @ x.xxV

30-second power off sequence for the brick (or system, if no backup is available), server, or module.

ATTN: x.xV high warning limit reached @ x.xxV

A higher than nominal voltage condition is detected.

ATTN: x.xV low warning limit reached @ x.xxV

A lower than nominal voltage condition is detected.

ATTN: x.xV level stabilized @ x.xV

A monitored voltage level has returned to within acceptable limits.

Fan messages:

 

ATTN: FAN # x fault limit reached @ xx RPM

A fan has reached its maximum RPM level. The ambient temperature may be too high. Check to see if a fan has failed.

ATTN: FAN # x warning limit reached @ xx RPM

A fan has increased its RPM level. Check the ambient temperature. Check to see if the fan stabilizes.

ATTN: FAN # x stabilized @ xx RPM

An increased fan RPM level has returned to normal.

Temperature messages: low alt.

 

ATTN: TEMP # advisory temperature reached @ xxC xxF

The ambient temperature at the brick's, server's, or module's air inlet has exceeded 30 ºC.

ATTN: TEMP # critical temperature reached @ xxC xxF

The ambient temperature at the brick's, server's, or module's air inlet has exceeded 35 ºC.

ATTN: TEMP # fault temperature reached @ xxC xxF

The ambient temperature at the brick's or server's air inlet has exceeded 40 ºC.

Temperature messages: high alt.

 

ATTN: TEMP # advisory temperature reached @ xxC xxF

The ambient temperature at the brick's, server's, or module's air inlet has exceeded 27 ºC.

ATTN: TEMP # critical temperature reached @ xxC xxF

The ambient temperature at the brick's, server's, or module's air inlet has exceeded 31 ºC.

ATTN: TEMP # fault temperature reached @ xxC xxF

The ambient temperature at the brick's, server's, or module's air inlet has exceeded 35 ºC.

Temperature stable message:

 

ATTN: TEMP # stabilized @ xxC/xxF

The ambient temperature at the brick's, server's, or module's air inlet has returned to an acceptable level.

Power off messages:

 

Auto power down in xx seconds

The L1 controller has registered a fault and is shutting down. The message displays every 5 seconds until shutdown.

Brick or server appears to have been powered down

The L1 controller has registered a fault and has shut down.


L2 Controller Tasks

The L2 controller performs the following functions:

  • Controls resource sharing.

  • Controls L1 controllers.

  • Resets the system.

  • Issues non-maskable interrupts (NMIs).

  • Displays voltage margin information.

  • Routes data between upstream devices and downstream devices.

    Upstream devices (for example, rack display, console, and modem) provide control for the system, initiate commands for the downstream devices, and act on the messages that they receive from downstream devices.

    Downstream devices (for example, C-bricks, the USB hub of the R-brick, and L1 controllers of the bricks) perform the actions that are specified by the L2 controller commands, send responses to the L2 controller that indicate the status of the commands, and send error messages to the L2 controller.

  • Allows remote maintenance.

You use the L2 controller touch display to do the following:

  • Power the system on and off.

  • Monitor voltage margins.

  • Reset the system

  • Enter a non-maskable interrupt (NMI).

The L2 controller also monitors and generates status and error messages related to the rack chassis items, such as the power bay and other rack items. The L2 controller also displays status and error messages generated by each individual brick's L1 controller. (See “L1 Controller Tasks and Messages” for L1 controller message descriptions.)

The L2 controller information is displayed on the L2 controller touch display located in the front door of your server system. (The actual L2 controller is located on the top of your rack enclosure.)


Note: If you have a system console, you can also see the L2 controller messages on the system console.