flashsc(1M) flashsc(1M)
flashsc - FLASH update utility for SGI Server L1/L2 Controllers
/usr/sbin/flashsc [-p] [-f] [--l2 hostname|IP]
[--sysname name] [--ssn serial_number] [--interface name]
[--serial host:port] [--dev device_name] image_name rack.slot|all|local
/usr/sbin/flashsc -version|-v|-vv image_name
/usr/sbin/flashsc -l2recover [--serial host:port]
[--dev device_name] image_name
The flashsc utility updates FLASH memory in the L1 or L2 controllers.
The FLASH memory in the SN1 L1 controller is divided into three areas:
- a "bootstrap" image, which always executes at power-up
- an "a" image, which is a copy of the full L1/L2 controller firmware
- a "b" image, which is a copy of the full L1/L2 controller firmware
Due to memory constraints, there is only one full L2 controller image in
the L2 firmware. The second image is the image that is currently running
in the L2's RAM.
Each full image contains a timestamp, which is the date/time the firmware
image was built. At power-up, the bootstrap code looks at the fullimages
and boots the one which is newer (has a more recent timestamp).
Each image also has a checksum, enabling to bootstrap code to validate an
image before attempting to boot it. On the L1, this two-image system
system allows a new firmware image to be downloaded into the controller
without having to overwrite the current "good" image.
The "a" and "b" images each contain a timestamp, which is the date/time
the firmware image was built. At power-up, the bootstrap code simply
looks at the two full images and boots the one which is newer (has a more
recent timestamp). Each image also has a checksum, enabling the
bootstrap code to determine which of the images is valid. This two-image
system allows a new firmware image to be downloaded into the controller
without having to overwrite the current "good" image.
Because the L2 Controller can store only one full image in firmware, the
boot image has an emergency flash recovery mechanism. If the boot image
discovers that the full image is corrupt, it will display a message to
Page 1
flashsc(1M) flashsc(1M)
the "Console" serial port, and then wait for a flash update over that
serial port. The -l2recover option to flashsc is used to update an L2
controller in this state. This method requires a direct connection (with
a "null modem" cable) from serial port on the system where flashsc is
running to the L2 Controller's "Console" serial port.
flashsc supports updates via four methods:
- ethernet connection to an L2 controller
- direct USB connection to a L1 controller
- direct serial connection to an L1 controller
- direct serial connection to an L2 controller with a corrupt flash image
(for the L2 flash recovery procedure) via a direct serial connection
When updating the L1, flashsc always updates the image ("a" or "b") that
is NOT currently running (the running image cannot be updated; if you
wish to update the running image, boot the other image, see the ADVANCED
USAGE section below). When updating the L2, flashsc always updates the
image in the firmware.
Valid command line options are:
-p Update all of the specified controllers in parallel (without -p,
controllers are updated one at a time).
-f Forces the system controller flash update even if a controller is
already running the same firmware version as the image file (default
behavior is to skip updates on any controllers running the same
version of firmware as the image file).
--l2 hostname|IP
Connect to the L2 controller with the specified hostname or IP
address.
--ssn serial_number
Search for an L2 with the System Serial Number serial_number, and
connect to the first one found.
--sysname name
Search for an L2 with the System Name name, and connect to the first
one found.
Page 2
flashsc(1M) flashsc(1M)
--interface name
When searching for an L2 Controller to connect to, only search on
the specified network interface (i.e. eth0, eth1, etc.) This option
is ignored when --l2, --serial, or --dev is specified.
--serial host:port
Valid for L1 Controller updates and L2 emergency flash recovery
only; connect to the controller via a serial (SMP) connection to the
Annex box host on network port port (port number of the connection
to the Annex box plus 7000).
--dev device_name
Valid for L1 Controller updates and L2 emergency flash recovery
only; connect to the controller via a direct serial (SMP) connection
to a serial port on the system where flashsc is running.
-l2recover
Update an L2 controller with a corrupt firmware image.
-version|-v|-vv image_image
Return the image type (L1 or L2), version number, and build time of
the specified image.
image_name
The image name is the file name of the image. For the L1
controller, the image name is usually l1.bin. For the L2
controller, the image name is usually l2.bin.
rack.slot|all|local
rack is the rack number of the controller(s) that will be updated.
slot is the slot number of the controller(s) that will be updated.
all may be used instead of rack.slot (the rack.slot form is only
available for updating L1 Controllers). local means update ONLY the
controller that the flashsc is connected to (i.e. the L2 that it is
connected to via ethernet, or the L1 it is connected to via a serial
connection).
Without any options, flashsc attempts to connect to an L2 controller (a
"real" L2, or a software L2 running on the L3). When communicating with
the system via the USB connection (in a system where there is no actual
L2), the application /stand/sysco/bin/l2 must be running.
Page 3
flashsc(1M) flashsc(1M)
/usr/sbin/flashsc firmware update utility
/usr/cpu/firmware/sysco/l1.bin L1 Controller firmware image
/usr/cpu/firmware/sysco/l2.bin L2 Controller firmware image
Updating all L1's in parallel on a single, standalone system with one or
more hardware L2's:
1) cd /usr/cpu/firmware/sysco
2) /usr/sbin/flashsc -p ./l1.bin all
3) issue the "* reboot_l1" command at the L2> prompt to reboot all L1's
Updating all L2's in parallel on a single, standalone system with one or
more hardware L2's:
1) cd /usr/cpu/firmware/sysco
2) /usr/sbin/flashsc -p ./l2.bin all
3) issue the "* reboot_l2" command at the L2> prompt to reboot all L2's
Updating all L1's in parallel on one system (serial number L0000010) from
an L3 Controller with multiple SN1 systems connected.
1) cd /usr/cpu/firmware/sysco
2) /usr/sbin/flashsc --ssn L0000010 -p ./l1.bin all
3) issue the "* reboot_l1" command at the L2> prompt to reboot all L1's
Updating the L1 at rack 2, slot 18 via the USB connection using the L2
emulator running on the L3 (system w/o a hardware L2):
1) make sure the software L2 is running (/stand/sysco/bin/l2)
2) cd /usr/cpu/firmware/sysco
3) update the flash with the command:
/usr/sbin/flashsc ./l1.bin 2.18
4) issue the "r 2 s 18 reboot_l1" command at the L2> prompt to reboot the
L1
Updating the L1 at rack 3, slot 12 via the (serial) SMP port connection
on the Annex serial port server 'myannex', port 17:
1) cd /usr/cpu/firmware/sysco
2) update the flash with the command:
/usr/sbin/flashsc --serial myannex:7017 ./l1.bin 3.12
Performing an L2 flash recovery on an L2 controller with a corrupted
firmware image:
1) connect a serial (null modem) cable from the serial port (COM1) on the
L3 Controller to the "Console" serial port on the L2 Controller
2) power cycle the L2 controller, and verify that a message is displayed
stating that the firmware image is corrupt
3) cd /usr/cpu/firmware/sysco
Page 4
flashsc(1M) flashsc(1M)
4) update the flash with the command:
/usr/sbin/flashsc -l2recover --dev /dev/ttyS0 l2.bin
This section details commands and procedures for "advanced" flash
manipulation. The procedures in this section apply only to the L1.
Updating the currently executing image
In order to update the image that is currently executing, you must first
reboot the L1/L2 into the other flash image. The "reboot_l1" (reboot_l2)
command will allow the controller to boot into a specific image.
1) run the "ver" command on the L1 to determine which image (A or B) is
currently running
2) issue the reboot_l1(l2) command to boot the controller into the other
image (i.e. if image A is currently running, type "reboot_l1 b").
3) now follow the normal flash update procedure outlined above
Updating to a "test" image
Use the "flash default a|b" command to set the "default" boot image to
the current image. Then, update the other image, and use "reboot_l1 a|b"
to boot it. If this new image works as desired, use the "flash default
reset" command to let the boot code pick the most up-to-date image.
PPPPaaaaggggeeee 5555 [ Back ]
|