1
0
Files
irix-657m-src/stand/x86/ffsc/html/flashing.html
2022-09-29 17:59:04 +03:00

547 lines
14 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Flashing MMSC Firmware</title>
</head>
<body>
<a name="Intro">
<h1>Flashing MMSC Firmware</h1>
</a>
<p>
<em>
Note: the MMSC is also known by its older name,
&quot;FFSC&quot;.
Similarly, the MSC was also once known as the
&quot;ELSC&quot;.
</em>
</p>
<p>
The firmware for the Origin2000 MMSC (Multi-Module System
Controller) resides in non-volatile storage on the MMSC
itself.
There are times when it is necessary to replace the existing
firmware with a new (or at least different) firmware image.
There are a couple of ways to accomplish this, depending
on the circumstances of the installation and the available
equipment.
This document describes these different procedures and
explains when each is necessary.
</p>
<hr>
<a name="Basics">
<h3>Basics</h3>
</a>
<p>
The MMSC has six serial ports, each capable of running at speeds
of up to 115200 Baud.
The ports are <i>not</i> interchangable; each has a specific
function, as follows:
</p>
<table>
<tr>
<th>Port</th>
<th>Function</th>
</tr>
<tr>
<td><b>COM1</b></td>
<td>
Terminal device (the &quot;tty1&quot; port on a lego rack
system is actually connected to this port).
</td>
</tr>
<tr>
<td><b>COM2</b></td>
<td>
Connection to the MSC (Module System Controller) in
the upper bay of the rack.
</td>
</tr>
<tr>
<td><b>COM3</b></td>
<td>
Connection to the MSC in the lower bay of the rack.
</td>
</tr>
<tr>
<td><b>COM4</b></td>
<td>
Connection to the master IO6 board.
</td>
</tr>
<tr>
<td><b>COM5</b></td>
<td>
Remote service modem (<i>not</i> a general purpose modem
port).
Also used for direct firmware downloads in emergencies.
</td>
</tr>
<tr>
<td><b>COM6</b></td>
<td>
MMSC debugging port (not used in customer systems).
</td>
</tr>
</table>
<p>
Each serial port has a standard female 8-pin mini-din jack
that should be labelled with its port number.
The COM1 and COM5 ports can be attached to an Indy (etc.)
using a normal 8-pin mini-din to 8-pin mini-din null modem
cable.
The COM2, COM3 and COM4 ports are attached to their respective
hardware components with cables that should be provided with
each system.
They are, however, fairly standard 9-pin serial to 8-pin
mini-din null-modem cables and in a pinch can be constructed
by hooking together the appropriate off-the-shelf adapters
and cables.
</p>
<p>
On a multi-rack system, the COM1 and COM4 ports are typically
used on only one rack in the system (the one with the master
IO6).
The COM2 and COM3 ports are generally used on every MMSC.
</p>
<p>
The system console (tty1) on lego rack systems is attached to
the IO6 <i>through</i> the MMSC.
This allows the MMSC to intercept certain command strings, and
also makes it possible for the MMSC to obtain data (such as
new firmware images) from either a running unix system or the
system console itself.
</p>
<p>
The tool used to flash MMSC firmware runs under IRIX and is
called <tt>flashmmsc</tt>.
It ships as part of IRIX 6.4, and can also be obtained from:
<listing>
homegrown.engr:/usr/dist/mmsc/flashmmsc
</listing>
A version that runs under IRIX 6.2 can be obtained from:
<listing>
homegrown.engr:/usr/dist/mmsc/flashmmsc-6.2
</listing>
The MMSC firmware image typically resides in a file named
<tt>mmscfw.bin</tt>.
The latest version can often be found in the same directory:
<listing>
homegrown.engr:/usr/dist/mmsc/mmscfw.bin
</listing>
</p>
<hr>
<a name="SerialDownloader">
<h3>Using the Serial Downloader</h3>
</a>
<p>
After certain catastrophic failures (or when an MMSC first
arrives from the vendor) the non-volatile storage that usually
holds the MMSC firmware is erased.
When an MMSC is powered on in this condition, it will often
show a blank blue screen, or perhaps some PC-style BIOS
configuration gibberish.
Under these circumstances, it is necessary to flash the
firmware image into non-volatile storage using the
&quot;Serial Downloader&quot;, a simple tool provided in the
MMSC's BIOS.
</p>
<p>
This procedure requires a direct serial connection from either
a PC or an IRIX system to the COM5 port on the afflicted MMSC.
The serial connection should be set up for 19200/8/N/1
(only!).
If using a PC, it must have a terminal emulator capable of
performing xmodem or xmodem-1K file transfers.
If using an IRIX system, it should have the <tt>flashmmsc</tt>
program if possible, although an xmodem file-transfer program
can be used if necessary.
</p>
<h4>Starting the Serial Downloader</h4>
<p>
There are two ways to start the serial downloader.
If the MMSC has an attached display, then the serial
downloader will be started if the bottom two buttons of the
MMSC display (&quot;down&quot; and &quot;enter&quot;) are held
down while the MMSC is powered up.
This is unfortunately a fairly awkward procedure and usually
requires two people, one to stand at the front of the system
and hold down the bottom two buttons of the display, and the
other to go to the back of the system and unplug (then
reconnect) the MMSC from its power supply.
There is actually a short delay before the buttons need to be
pressed; if you are desparate or just gymnastically inclined,
it may be possible to power cycle the MMSC then run around to
the front panel in time to hold down the buttons.
</p>
<p>
The display buttons should be held down until the serial
downloader menu appears.
It will look approximately like this:
<listing>
SBC-FFSC Serial Downloader 1.0
(U)pload an application
</listing>
At this point, you can use either a terminal emulator or
the <tt>flashmmsc</tt> program to transfer the firmware
image.
</p>
<p>
The second approach to starting the serial downloader requires
that the MMSC already have a working firmware image.
In this case, the MMSC command
<a href="commands.html#DOWNLOADER"><tt>downloader enable</tt></a>
can be used to set the &quot;serial downloader&quot; flag on
one or more MMSCs.
If an MMSC's &quot;serial downloader&quot; flag is set, then
it will automatically start the serial downloader the next
time it is reinitialized.
</p>
<p>
<i>
Note that there is no way to reset the serial downloader
flag after an MMSC has been reinitialized, except by
flashing a new firmware image!
</i>
Therefore, care should be exercised when using the
<tt>downloader enable</tt> command.
</p>
<p>
If an MMSC does not have a working firmware image, then the
only way to start its serial downloader is with the down+enter
button technique.
If such an MMSC does not have the display attached to it, then
it will be necessary to unbolt it from its cabinet and move it
next to the display so that the display can be temporarily
attached.
</p>
<h4>
Transferring the Firmware Image Using a Terminal Emulator
</h4>
<p>
If the COM5 port of the MMSC is attached to a PC (or any other
system capable of doing an XMODEM file transfer) you will
flash the firmware by simply uploading it to the MMSC.
The menu from the MMSC display should also have been echoed
to the PC.
If it was not, try hitting ENTER once or twice, check your
connections/baud rate/etc. and make sure you are using a
null modem cable (as opposed to one wired straight through)
to connect the MMSC and PC.
</p>
<p>
Once you have gotten the serial downloader menu from the MMSC,
simply type <tt>U</tt>, then instruct your terminal emulator
to send the firmware image file, typically
<tt>mmscfw.bin</tt>.
The file transfer protocol should be either XMODEM-CRC or
XMODEM-1K.
The transfer will take approximately 10 minutes.
The display will show a series of dots to indicate progress;
a typical firmware image may take 10-12 lines of dots to
complete.
</p>
<h4>
Transferring the Firmware Image Using <tt>flashmmsc</tt>
</h4>
<p>
If the COM5 port of the MMSC is attached to a serial port on a
system running IRIX, you can flash the image using the
<tt>flashmmsc</tt> program.
The format of the command is:
<listing>
flashmmsc -d -l /dev/ttydXX -f mmscfw.bin
</listing>
where <tt>/dev/ttydXX</tt> is the device name of the direct
serial port you are using, and <tt>mmscfw.bin</tt> is the name
of the file containing the firmware image you intend to load.
</p>
<p>
This program should be run once the display shows the serial
downloader menu described above.
It may take 10-20 seconds for the file transfer to begin,
but once it does, a series of dots will be printed on both
the MMSC display and the IRIX window.
If these dots do not start after 30 seconds or so, check
your connections as described earlier.
</p>
<hr>
<a name="IrixUpgrade">
<h3>Upgrading MMSC Firmware From IRIX</h3>
</a>
<p>
If an MMSC is (more or less) operational and just needs to
have its firmware upgraded to a new version, this can be
accomplished from the IRIX system console using the
<tt>flashmmsc</tt> command.
</p>
<p>
The flashmmsc command is assumed to be issued from a terminal
that has access to one of the MMSC's associated with the
system
(such a terminal can access the MMSC itself by first typing the
MMSC-escape character, typically CONTROL-T).
The flashmmsc command is first issued using the <tt>-m</tt>
option.
Next, the MMSC <b>flash</b> command is issued to the desired
MMSC by first typing the MMSC-escape character then the
appropriate flash command.
</p>
<p>
For example, to flash a new firmware image onto rack 2 of a
system that uses CONTROL-T for its MMSC-escape character, the
sequence of events may look like this:
<listing>
% flashmmsc -m
Ready to transfer new image to full-feature system
controller. To begin the transfer, type your MMSC
escape character (normally CTRL-T) followed by the
command:
rack &lt;rackid&gt; flash
where &lt;rackid&gt; is the identifier for the system
controller you wish to upgrade.
<i>[User types CONTROL-T]</i>
mmsc> rack 2 flash
Waiting for MMSC to initiate transfer...
</listing>
This will take the firmware image from the default location
<tt>/usr/cpu/firmware/mmscfw.bin</tt>.
To specify a different image location, use the <tt>-f</tt>
option:
<listing>
flashmmsc -m -f my_special_firmware.bin
</listing>
</p>
<p>
While this procedure is faster than using the serial
downloader, it can still take 10 or more minutes to
run, depending on the speed of the connection between
the IO6 and the MMSC.
As with the serial downloader, a series of dots will be
printed to show progress.
</p>
<p>
<b>Note:</b> asynchronous messages to the console (e.g. from
syslogd) will interfere with the file transfer.
In environments where many messages are sent to the unix
console, it may be helpful to run <tt>flashmmsc</tt> in
single-user mode in order to avoid these messages.
Alternatively, the
<a href="#SerialDownloader">serial downloader technique</a>
can be used instead.
Because this approach does not use /dev/ttyd1, it is not
affected by console messages.
</p>
<h4>Increasing the speed of the MMSC/IO6 connection</h4>
<p>
<em>
NOTE: This only applies to the speed of the MMSC/IO6
connection that is used when downloading an image from
IRIX.
There is no way to increase the speed of the connection used
by the serial downloader.
</em>
</p>
<p>
The time it takes to download a new MMSC firmware image from
IRIX can be improved by increasing the speed of the serial
connection between the MMSC and the IO6.
The maximum speed supported by the MMSC at this time is 57600
baud.
Changing the serial line speed must be done in two steps:
</p>
<ol>
<li>
First, tell IRIX to change the speed of the IO6 serial
port.
This is generally done with the <tt>stty</tt> command.
For example, this would change the speed of the serial port
for the console on which it was entered to 57600 baud:
<listing>
stty 57600
</listing>
</li>
<li>
Next, tell the MMSC to change the speed of its serial port.
This is done with the MMSC <b>com</b> command.
To change the speed of the MMSC port used to talk to the IO6
to 57600 baud, you would first type the <i>MMSC-escape</i>
character (usually Control-T), then enter the command:
<listing>
rack local com 4 speed 57600
</listing>
</li>
</ol>
<p>
It is important to do these two commands in order.
If you change the MMSC serial port speed first, you won't be
able to talk to IRIX in order to have it change its serial
port speed.
In that case, you would need to restore the MMSC serial port
to its original speed (usually 9600 baud) and start over.
</p>
<p>
Once the speed of both serial ports has been changed, you
should be able to issue commands to IRIX in the usual way.
At that point, you can proceed with the <tt>flashmmsc</tt>
command described above.
</p>
<p>
Note that under normal circumstances, the serial port speed of
the MMSC will remain unchanged after a reset or power cycle.
However, the IRIX serial port will return to its original
setting (usually 9600 baud) as soon as you log out.
Therefore, it is usually wisest to change the speed of both
serial ports back to their original settings after the
downloading has been completed.
This can be done as follows:
</p>
<listing>
<i>from IRIX:</i>
stty 9600
<i>type the MMSC-escape character, then:</i>
rack local com 4 speed 9600
</listing>
<hr>
<address>
<a href="mailto:rdb@uniscan.engr.sgi.com">Rob Bradshaw</a>
</address>
<!-- Created: Wed Sep 25 00:07:22 PDT 1996 -->
<!-- hhmts start -->
Last modified: Thu Dec 19 10:33:12 PST
<!-- hhmts end -->
</body>
</html>