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

2710 lines
69 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html version="2.0">
<head>
<title>MMSC Command Language </title>
</head>
<body
alink="#cc3232"
vlink="#93db70"
link="#ffff00"
bgcolor="#42426f"
text="#ffffff">
<h1 align="center">MMSC Command Language</h1>
<h3 align="center">
Rob Bradshaw<br>
For MMSC Version 1.0.8
</h3>
<p>
The Multi-Module System Controller (MMSC) is used to control a
single Origin2000 rack system.
When multiple Origin2000 racks are attached to form a single system,
each rack has its own MMSC; these MMSC's are then attached to
each other over a private ethernet.
Each MMSC can accept commands from a number of different
sources, including consoles connected via direct serial
connection or modem, individual modules (or &quot;bays&quot;)
in a rack via their module system controllers (MSC), and
other MMSC's via the private ethernet.
In addition, one rack in a Origin2000 rack system will have
a display with several buttons that can also be used to
generate commands.
</p>
<p>
The commands that are issued to an MMSC may directly affect
the operation of the MMSC itself or may be passed along to
individual bays, either in the same rack as the MMSC or
perhaps in a different rack.
This document describes the syntax and contents of these MMSC
commands.
The MMSC may also be used to pass <i>MSC commands</i> through
to one or more bays.
For more information on the MSC and MSC commands, see
<a href="http://babylon.engr/lego/ip27prom/ip27prom.html">
the IP27 PROM Technical Reference Manual
</a>.
</p>
<a name="Terminology">
<h4>Some notes on terminology</h4>
</a>
<p>
When referring to a Origin2000 system, the term <b>module</b> is
sometimes understood to mean any particular module in a
system, and sometimes just means one of the two modules in a
specific rack in a system.
To avoid ambiguity, this document will use the word
<b>module</b> when the &quot;logical&quot; definition
(i.e. any module in a system) is intended, and will use the
term <b>bay</b> when the &quot;physical&quot; definition
(i.e. a module in a specific rack) is intended.
</p>
<p>
Originally, the MMSC was referred to as the &quot;FFSC&quot;
(Full Feature System Controller), and the MSC was referred to
as the &quot;ELSC&quot; (Entry Level System Controller).
The old and new terms may still be used interchangably in some
places.
</p>
<hr>
<a name="Destinations">
<h3>Specifying Destinations</h3>
</a>
<p>
Many commands are intended for delivery to specific racks
(MMSCs) and/or bays (MSCs), so it is important to have a way
to specify particular destinations.
</p>
<p>
At the lowest level, racks are addressed with small integers
starting with 1, and MSCs within a rack (bays) are addressed
with letters representing their position (<b>U</b> and <b>L</b>
for Origin2000).
</p>
<p>
Modules are also addressed with small integers.
They are generally written in hexadecimal and may be in the
range of 1-ff.
The mapping of a module number to its physical (rack and bay)
location is arbitrary, and is handled by the IO6 PROM
(for more information on module numbers, see
<a href="http://babylon.engr.sgi.com/lego/ip27prom/ip27prom.html#ModuleNumbers">
The IP27prom Technical Reference Manual
</a>).
The MMSC obtains this mapping when either the MMSC or the MSC
is reset.
It can also rebuild the current mappings using the <b>scan</b>
command.
</p>
<p>
A partition is a collection of modules that is treated as a
single logical system.
They are not yet supported by the MMSC, but will be
eventually.
</p>
<p>
One or more addresses can be combined into a <i>list</i>.
A <i>list</i> of rack or module addresses is made up of one or
more addresses or <i>ranges</i> separated by commas with no
intervening white space.
A <i>range</i>, in turn, is a series of contiguous values
specified as two addresses separated by a hyphen, again with
no intervening white space.
Thus, the following are valid lists of module addresses:
</p>
<listing>
1
1,3
1-f
1-4,7,39-3b
</listing>
<p>
A list of bay addresses is also formed by one or more individual
addresses separated by commas with no intervening white space.
For bay addresses, comma separators are optional.
However, ranges are not meaningful for lists of bay addresses, and
so are not allowed.
</p>
<a name="PhysicalDestinations">
<h4>Physical destinations</h4>
</a>
<p>
A <i>physical destination</i> is used to refer to one or more
specific bays without regard to any logical module or
partition designations.
These are typically used for maintenance commands, such as
powering a single bay off to replace a board.
A complete physical destination specfication consists of one
or more &quot;rack/bay pairs&quot;:
</p>
<listing>
<b>rack</b> <i>rlist</i> <b>bay</b> <i>blist</i>
</listing>
<p>
The keywords <b>rack</b> and <b>bay</b> can be abbreviated as
<b>r</b> and <b>b</b>, respectively.
</p>
<p>
A rack/bay pair selects each of the bays in <i>blist</i> on
each of the racks in <i>rlist</i> (think of it as a
&quot;product&quot;).
Specifying more than one pair extends the selection accordingly
(think of it as a &quot;sum&quot;).
Thus, the long destination:
</p>
<listing>
rack 1-3 bay u,L rack 4 bay L
</listing>
<p>
is equivalent to:
</p>
<listing>
rack 1 bay u
rack 1 bay l
rack 2 bay u
rack 2 bay l
rack 3 bay u
rack 3 bay l
rack 4 bay l
</listing>
<p>
Instead of specifying a list of addresses for <i>rlist</i> or
<i>blist</i>, it is also possible one of several keywords.
These include:
</p>
<dl>
<dt><b>all</b> (abbreviation &quot;<b>*</b>&quot;)</dt>
<dd>
Selects all known <em>online</em> addresses.
Addresses that are believed to be offline are skipped.
If the MMSC's beliefs as to what is online or offline seem
to be inaccurate, the <b>scan</b> command (see below) can be
used to update them.
A command can still be directed to a supposedly offline
address by explicitly specifying it rather than using the
<b>all</b> keyword.
</dd>
<p>
<dt><b>local</b> (abbreviation: &quot;<b>.</b>&quot;)</dt>
<dd>
<i>Only valid for rlists</i><br>
Selects the &quot;local&quot; rack, i.e. the rack containing
the MMSC that initially accepts the command.
</dd>
</dl>
<p>
If the rack portion of a physical destination is omitted but
the bay portion is not, then <tt>rack&nbsp;local</tt> is
implied.
If the bay portion is omitted but the rack portion is not,
then <tt>bay&nbsp;all</tt> is implied.
</p>
<p>
Therefore, the following are all equivalent physical addresses
in a four-rack system with two bays per rack.
</p>
<listing>
rack all bay ul
rack 1,2-4
r * b *
</listing>
<a name="LogicalDestinations">
<h4>Logical Destinations</h4>
</a>
<p>
A <i>logical destination</i> is used to refer to individual
modules by their module numbers, rather than their physical
position in a system.
These are used more commonly that physical destinations, since
these are the types of addresses used by IRIX and the various
PROMs.
A logical destination is formed by the keyword <b>module</b>
followed by a module list:
</p>
<listing>
<b>module</b> <i>mlist</i>
</listing>
<p>
The keyword <b>module</b> can be abbreviated as <b>m</b> if
desired.
</p>
<p>
As with physical destinations, <i>mlist</i> can be replaced
with the keyword <b>all</b> to specify all known modules.
There is a special case when no modules happen to be defined
(this might occur, for example, if none of the modules have
been powered on).
In this case, <tt>module&nbsp;all</tt> is equivalent to
<tt>rack&nbsp;all&nbsp;bay&nbsp;all</tt>.
</p>
<p>
Many MMSC commands pertain only to a particular rack and not a
specific bay within it.
If a logical address is used with such a command, the bay
address that is implied by the module number is ignored.
</p>
<p>
Both physical and logical destinations may be specified for
the same command, as long as one is not embedded in the middle
of another.
Thus, the following are valid:
</p>
<listing>
rack * bay u module 3,5-7
r 1 b ul m 8 rack 3 bay l
</listing>
<p>
But these are not, or at least may not give the expected results:
</p>
<listing>
rack module 2 3 bay u (<i>invalid</i>)
r 3 m 5 b u (<i>valid, but equivalent to: </i> r 3 b * m 5 r . b u)
</listing>
<p>
When the MMSC executes a command, logical destinations are
converted internally to physical destinations using the module
number mappings known to the MMSC at the time the command is
executed.
If the MMSC's mappings are no longer valid (for example, if a
module has been powered off or is otherwise unavailable), then
commands may time out or be directed to the wrong module.
The <b>scan</b> command can be used to update the MMSC's
mappings manually if necessary.
</p>
<a name="DefaultDestinations">
<h4>Default Destinations</h4>
</a>
<p>
Although it is possible to indicate a specific destination for
any given command, this can be cumbersome in some cases, such
as when there are several commands that need to go to the same
complicated list of destinations.
Therefore, the MMSC allows specifying a <i>default
destination</i> by entering a destination with no additional
command, or by using the <a href="#DEST"><b>dest</b></a>
command.
Any subsequent commands that expect a destination will use
this default value if no other destination is specified.
</p>
<p>
The initial default destination is <tt>module all</tt>.
</p>
<hr>
<a name="CommandSyntax">
<h3>Command Syntax</h3>
</a>
<p>
The general syntax for MMSC commands is fairly simple, other
than the destination.
</p>
<p>
In general, an MMSC command looks like this:
</p>
<listing>
[<i>escape</i>] [<i>dest</i>] <i>command</i> [<i>args</i>] <b>&lt;CR&gt;</b>
</listing>
<p>
where:
</p>
<dl>
<dt><i>escape</i></dt>
<dd>
is an <i>MMSC-escape</i> character, typically Control-T by default.
This is used in console and MSC pass-through modes to indicate
the beginning of an MMSC command.
See below for further details.
</dd>
<p>
<dt><i>dest</i></dt>
<dd>
is a destination specification, described above.
</dd>
<p>
<dt><i>command</i></dt>
<dd>
is the name of an MMSC command, which are described below.
<i>command</i> may be in upper or lower case (or both);
it will be converted to upper case by the MMSC before it is
processed.
If <i>command</i> is not a valid MMSC command, it is assumed to
be an MSC command and is passed to the bay(s) addressed
by <i>dest</i> along with <i>args</i> without further translation.
</dd>
<p>
<dt><i>args</i></dt>
<dd>
are zero or more arguments to <i>command</i>.
</dd>
<p>
<dt><b>&lt;CR&gt;</b></dt>
<dd>
commands are always terminated with a carriage-return character.
Note that this implies that neither the command nor its arguments
may contain an embedded carriage-return character.
</dd>
</dl>
<p>
If an <i>MMSC-escape</i> character is entered in the middle of
an MMSC command, all characters between it and the last
<i>MMSC-escape</i> character are discarded.
This can be useful if the current state of a console or other
MMSC connection is currently unknown.
In addition, the <i>kill</i> character (Control-U by default)
will do the same thing.
</p>
<hr>
<a name="CommandSet">
<h3>The Command Set</h3>
</a>
<p>
The following is a description of the valid MMSC commands.
If a command other than one of these is specified, it is
assumed to be an MSC command and is passed along to the
addressed MSC.
Many commands accept an optional destination specification,
while others do not.
Those commands marked with &quot;[*]&quot; will honor
destination specifications.
Unless otherwise specified, each of these commands can be
executed by a user at the <i>basic</i> authority level.
</p>
<dl>
<dt>
<a name="AUTHORITY">
<b>authority</b> [<i>level</i> [<i>pw</i>]]
</a>
</dt>
<dd>
This command is only meaningful from terminals.
<p>
If <i>level</i> is not specified, then the authority level
associated with the console from which the command was
entered is displayed.
</p>
<p>
Otherwise, the authority level of the console from which
the command was entered is changed to <i>level</i>.
The valid authority levels are <b>basic</b>,
<b>supervisor</b> and <b>service</b>.
For more information on these, see
<a href="security.html">
Security on the Origin2000 Multi-Module System Controller
</a>.
</p>
<p>
If the <b>supervisor</b> or <b>service</b> level is
selected and has a password associated with it, then
<i>pw</i>, the appropriate password, must be specified
after <i>level</i>.
If the password is not correct, an error message will be
printed and the current authority level will be
unchanged.
</p>
</dd>
<p>
<dt>
<a name="BS">
<b>bs</b> <i>char</i><br>
<b>bs ?</b>
</a>
</dt>
<dd>
This command is only meaningful from terminals.
<p>
Set the <i>backspace</i> character of the console on which
the command is entered to <i>char</i>, which may be either
a single literal character, an integer value representing
a single ASCII character, or a control sequence consisting
of a carat followed by a single character
(e.g. &quot;^H&quot;).
Note that this only affects the <i>backspace</i> character
used when typing MMSC or MSC commands.
It does not affect the <i>backspace</i> character used in
normal passthrough operation.
The default <i>backspace</i> character is <TT>Control-H</TT>.
</p>
<p>
If <b>bs ?</b> is specified, then the current
<i>backspace</i> will be printed.
This implies that in order to use the &quot;?&quot;
character as the actual <i>backspace</i> character, it is
necessary to specify it using its numeric ASCII code.
</p>
</dd>
<p>
<dt>
<a name="CECHO">
<b>cecho</b> [ <b>on</b> | <b>off</b> ]
</a>
</dt>
<dd>
This command is only meaningful from terminals.
<p>
<b>cecho</b> controls the echoing of characters when an
MMSC command is being typed in the CONSOLE input mode.
It only affects the console on which it was entered.
When command echo is <b>off</b>, any characters that are
received after an <i>MMSC-escape</i> character are
buffered internally by the MMSC but not echoed back to the
input source.
When command echo is <b>on</b>, then once an
<i>MMSC-escape</i> character has been received, an MMSC
prompt and the character following the escape character
will be echoed to the input source.
All additional input characters up to the terminating
<i>carriage-return</i> will be echoed as well.
Once the <i>carriage-return</i> has been received, input
processing returns to its original state.
</p>
<p>
If <b>cecho</b> is entered without arguments, the current
<b>cecho</b> mode is toggled.
</p>
<p>
The default setting for <b>cecho</b> is <b>on</b>.
</p>
</dd>
<p>
<dt>
<a name="COM">
<b>com</b> <i>port</i><br>
<b>com</b> <i>port</i> <b>cmd on</b>|<b>off</b><br>
<b>com</b> <i>port</i> <b>function</b> <i>func</i><br>
<b>com</b> <i>port</i> <b>oob on</b>|<b>off</b><br>
<b>com</b> <i>port</i> <b>rxbuf</b>|<b>txbuf</b> <i>value</i><br>
<b>com</b> <i>port</i> <b>speed</b> <i>baudrate</i><br>
</a>
</dt>
<dd>
[*] <b>com</b> is used to set or display communications
settings of the various serial ports on the MMSC.
<p>
<i>port</i> is a number from 1 to 6 corresponding to a
particular serial port on the addressed MMSC:
</p>
<table border>
<tr>
<th><i>port</i></th>
<th>label</th>
<th>default function</th>
</tr>
<tr>
<td align=center>1</td>
<td>CONSOLE</td>
<td>TERMINAL</td>
</tr>
<tr>
<td align=center>2</td>
<td>UPPER BAY</td>
<td>UPPER</td>
</tr>
<tr>
<td align=center>3</td>
<td>LOWER BAY</td>
<td>LOWER</td>
</tr>
<tr>
<td align=center>4</td>
<td>BASEIO TTY1</td>
<td>SYSTEM</td>
</tr>
<tr>
<td align=center>5</td>
<td>ALTERNATE CONSOLE</td>
<td>ALTCONS</td>
</tr>
<tr>
<td align=center>6</td>
<td>TEST</td>
<td>DEBUG</td>
</tr>
</table>
<p>
If no other arguments are specified, then the current
communication settings for the selected port are
displayed.
</p>
<p>
The <b>cmd</b> subcommand is used to indicate whether or
not MMSC and MSC commands are accepted from a port.
If <b>off</b> is specified, then MMSC and MSC commands are
not accepted from the port.
For ports associated with a terminal (namely ports with
functions TERMINAL or ALTCONS), this has the effect of
causing the <i>MMSC-escape</i> character to be ignored
when the port is in the CONSOLE input mode.
This can be useful if a particular console is in an
insecure location, for example.
For ports associated with the system (e.g. functions
SYSTEM or DAEMON), this disables the Out Of Band function
FFSC_COMMAND.
If <b>on</b> is specified, then MMSC and MSC commands are
accepted from the port.
The only way to place a port that has specified
<tt>cmd&nbsp;off</tt> into some other input mode is to
&quot;steal&quot; the console from a different port (see
<a href="#STEAL">steal</a>).
Thus, <i>be very careful that at least one console has
specified</i> <tt>cmd on</tt>.
The default setting for ports 1 and 5 is
<tt>cmd&nbsp;on</tt>, and for ports 2, 3, 4 and 6 is
<tt>cmd&nbsp;off</tt>.
</p>
<p>
The <b>function</b> subcommand is used to set the function
associated with the selected port to <i>func</i>.
Valid functions include:
</p>
<table border>
<tr>
<th><i>func</i></th>
<th>Function of associated port</th>
</tr>
<tr>
<td>TERMINAL</td>
<td>
Communication with the user terminal device.
</td>
</tr>
<tr>
<td>UPPER</td>
<td>
Communication with the MSC in the upper bay of the
rack.
</td>
</tr>
<tr>
<td>LOWER</td>
<td>
Communication with the MSC in the lower bay of the
rack.
</td>
</tr>
<tr>
<td>SYSTEM</td>
<td>
Communication with the operating system.
This is the port through which both the user and the
MMSC communicate with IRIX.
It is typically connected to the TTY1 port on the
master BASEIO card.
</td>
</tr>
<tr>
<td>ALTCONS</td>
<td>
Remote service port.
This would typically be connected to a modem that is
used for communication with an SGI service center.
</td>
</tr>
<tr>
<td>DAEMON</td>
<td>
Communication with a system controller daemon on IRIX,
such as <i>ffscd</i>.
Such a daemon would ordinarily be used for generating
bar graph data on the MMSC display.
This port would typically be connected to a second
serial port on BASEIO card.
</td>
</tr>
<tr>
<td>DEBUG</td>
<td>
MMSC debugging log.
This is mostly useful if some sort of MMSC error has
occurred.
In that event, the debugging log may contain
additional information.
</td>
</tr>
</table>
<p>
Any given function can be assigned to at most one port.
If <i>func</i> specifies a function that is already
assigned to another port, then the other port will have
its port changed to an &quot;unassigned&quot; state.
Care should be taken to ensure that, at minimum, the
TERMINAL function is assigned to a port, or else it may
become impossible to communicate with the MMSC.
</p>
<p>
The <b>oob</b> subcommand is used to indicate whether or
not Out Of Band (OOB) data received from a port should be
intercepted and processed.
OOB messages are used by programs such as <i>ffscd</i> to
display bar graphs and other information on the MMSC
display.
The actual OOB message protocol is not described in this
document.
If <b>on</b> is specified, then OOB message processing
will be done for data received by the port.
For ports associated with the system (namely ports with
functions SYSTEM or DAEMON), any data preceded by the
<i>Out-Of-Band Prefix</i> character will be interpreted as
an OOB message.
The MMSC will perform the requested action and respond as
specified in the OOB message protocol.
For ports associated with a terminal (namely ports with
functions TERMINAL or ALTCONS), OOB message processing
means simply doubling the <i>Out-Of-Band Prefix</i>
character before sending it to the system.
This prevents it from being interpreted by IRIX as the
beginning of an Out Of Band message.
If <b>off</b> is specified, then Out Of Band messages that
are received from the port are ignored and passed through
without alteration.
The default setting for all ports is <tt>oob off</tt>.
</p>
<p>
The <b>rxbuf</b> and <b>txbuf</b> subcommands are used to
change the size of the serial port's receive and transmit
buffers, respectively.
The default for both is 4096.
If the <b>system</b> and <b>terminal</b> ports have
different speeds, it may be necessary to increase the size
of the transmit buffer on the slower port or else data may
be lost.
In extreme cases, serial buffer overflows have been known
to knock a serial port out of service, so
underestimating the buffer size should be carefully
avoided.
</p>
<p>
The <b>speed</b> subcommand is used to set the baud rate
of the selected port to <i>baudrate</i>.
Valid baud rates include 300, 1200, 2400, 4800, 9600,
19200, 38400, 57600 and 115200.
</p>
<p>
Function changes do not take effect until the MMSC has
been reset (see
<a href="#RESET_MMSC"><b>reset_mmsc</b></a>).
Speed changes take effect immediately.
The user must have <i>service</i> authority to specify
the <b>cmd</b>, <b>function</b>, <b>oob</b> or
<b>speed</b> subcommands.
</p>
</dd>
<p>
<dt>
<a name="console">
<b>console</b> [<i>args</i>]<br>
<b>cons</b> [<i>args</i>]
</a>
</dt>
<dd>
If <i>args</i> are present, they are sent along to the
system console port but otherwise ignored.
<i>args</i> is assumed to start at the first non-blank
character following the command.
<p>
If <i>args</i> is not specified, console pass-through mode
is entered.
Any subsequent input is passed through to the system
console port and any output from that system console port
is echoed here. There are two exceptions:
</p>
<ol>
<li>
Any input preceded by the MMSC escape character, up to
and including the first subsequent carriage-return
character, is processed by the MMSC rather than being
passed through.
Any output that is generated by this MMSC command may be
discarded or echoed, depending on the current
<a href="#RMSG"><b>rmsg</b></a> setting.
</li>
<p>
<li>
Two MMSC escape characters in a row will cause a single
MMSC escape character to be sent to the system console port,
then otherwise ignored by the MMSC.
</li>
</ol>
</dd>
<p>
<dt>
<a name="DEST">
<b>dest</b>
</a>
</dt>
<dd>
Displays and/or modifies the current default destination.
If no address was specified prior to the <b>dest</b>
keyword, then the console's current default destination will
be displayed.
Otherwise, the specified address will become the new default
destination for the console on which the command was entered.
Any subsequent command that specifies no address will
automatically use the default destination instead.
</dd>
<p>
<dt>
<a name="DIRECT">
<b>direct</b>
</a>
</dt>
<dd>
Enter direct input mode on both the current console and
the &quot;other&quot; console on the MMSC.
If the device on which the command is entered happens to be
the normal terminal device, then the &quot;other&quot;
console is the alternate console device.
Likewise, if the command is entered from the alternate
console device, the &quot;other&quot; console is the normal
terminal device.
<p>
All input from the current console will be sent directly
to the other console and vice versa.
The only exception is that typing the <i>exit</i>
character on the current console will cause both consoles
to leave direct mode and return to their usual input modes
(console mode for the terminal and RAT mode for the
alternate console).
</p>
<p>
Direct mode is mostly useful for programming a modem that
happens to be attached to the &quot;other&quot; console.
</p>
<p>
A user must have <i>service</i> authority to execute this
command.
</p>
</dd>
<p>
<dt>
<a name="DOWNLOADER">
<b>downloader disable</b><br>
<b>downloader enable</b>
</a>
</dt>
<dd>
[*] This command is used to set or clear the &quot;serial
downloader&quot; flag in the addressed MMSC's initialization
PROM.
The command <b>downloader enable</b> will set the flag,
and the command <b>downloader disable</b> will clear it.
<p>
When the &quot;serial downloader&quot; flag is set, the
initialization PROM on the MMSC's single-board computer
will load the &quot;serial downloader&quot; rather than
the normal MMSC firmware.
The serial downloader can be used to load a new firmware
image into the MMSC's flash RAM.
For more details on loading the MMSC firmware with the
serial downloader, see the document
<a href="flashing.html">Flashing MMSC Firmware</a>.
</p>
<p>
<i>
Note that once the MMSC has been initialized with the
&quot;serial downloader&quot; flag set, there is no way
to return to normal MMSC operation until a new MMSC
firmware image is loaded.
</i>
If you inadvertantly set the &quot;serial downloader&quot;
flag on the wrong rack, use the <b>downloader
disable</b> command to reset the flag as soon as
possible.
If an MMSC is reset, either with the <b>reset_mmsc</b>
command or because it has lost power, it will be necessary
to follow the procedure in
<a href="flashing.html#SerialDownloader">
Using the Serial Downloader
</a>
to restore normal operation.
</p>
<p>
The <b>downloader enable</b> command is typically used to
place an MMSC that does not have an attached display into
serial downloader mode.
A rack which does have a display can be placed into
serial downloader mode by holding down the bottom two
buttons of the display (<tt>ENTER</tt> and <tt>DOWN</tt>)
while the MMSC is being powered on.
</p>
<p>
A user must have <i>service</i> authority to execute this
command.
</p>
</dd>
<p>
<dt>
<a name="END">
<b>end</b> <i>char</i><br>
<b>end ?</b>
</a>
</dt>
<dd>
This command is only meaningful from terminals.
<p>
Set the <i>end-of-command</i> character for the console on
which the command was entered to <i>char</i>.
<i>char</i> may be either a single literal character, an
integer value representing a single ASCII character, or a
control sequence consisting of a carat followed by a
single character (e.g. &quot;^M&quot;).
The <i>end-of-command</i> character is used to signal the
end of an MMSC command while in the console or MMSC input
modes.
The default <i>end-of-command</i> character is
<TT>Control-M</TT> (a.k.a <i>carriage-return</i>).
</p>
<p>
If <b>end ?</b> is specified, then the current
<i>end-of-command</i> character will be printed.
This implies that in order to use the &quot;?&quot;
character as the actual <i>end-of-command</i> character,
it is necessary to specify it using its numeric ASCII
code.
</p>
</dd>
<p>
<dt>
<a name="ESC">
<b>esc</b> <i>char</i><br>
<b>esc ?</b>
</a>
</dt>
<dd>
This command is only meaningful from terminals.
<p>
Set the <i>MMSC-escape</i> character for the console on
which the command was entered to <i>char</i>.
<i>char</i> may be either a single literal character, an
integer value representing a single ASCII character, or a
control sequence consisting of a carat followed by a
single character (e.g. &quot;^T&quot;).
</p>
<p>
The <i>MMSC-escape</i> character is used to signal the
beginning of an MMSC command while in console mode.
The default <i>MMSC-escape</i> character is
<TT>Control-T</TT>.
Note that changing the <i>MMSC-escape</i> character does
not affect the MSC escape character, which is always
<TT>Control-T</TT>.
</p>
<p>
If <b>esc ?</b> is specified, then the current
<i>MMSC-escape</i> character will be printed.
This implies that in order to use the &quot;?&quot;
character as the actual <i>MMSC-escape</i> character, it
is necessary to specify it using its numeric ASCII code.
</p>
</dd>
<p>
<dt>
<a name="EXIT">
<b>exit</b><br>
<b>exit</b> <i>char</i><br>
<b>exit ?</b>
</a>
</dt>
<dd>
If neither <i>char</i> nor &quot;<b>?</b>&quot; is
specified, leave the current input mode and return to the
console mode.
If you are already in console mode, this command has no
effect.
<p>
In MSC and MMSC mode, the same effect can be accomplished
by simply typing the <i>exit</i> character.
Notice that the <i>only</i> way to leave MSC mode is by
typing the <i>exit</i> character, since MMSC commands are
not accepted in MSC mode.
</p>
<p>
If <i>char</i> is specified, set the <i>exit</i> character
for the console on which the command was entered to
<i>char</i>.
<i>char</i> may be either a single literal character, an
integer value representing a single ASCII character, or a
control sequence consisting of a carat followed by a
single character (e.g. &quot;^E&quot;).
</p>
<p>
The default <i>exit</i> character is <TT>Control-E</TT>
(for reasons I do not fathom).
An alternative might be <tt>Control-D</tt>, the standard
Unix EOF character that is often used to exit shells.
</p>
<p>
If <b>exit ?</b> is specified, then the current
<i>exit</i> character will be printed.
This implies that in order to use the &quot;?&quot; character
as the actual <i>exit</i> character, it is necessary to
specify it using its numeric ASCII code.
</p>
</dd>
<p>
<dt>
<a name="FLASH">
<b>flash</b> [<b>from system</b>]<br>
<b>flash from console</b>
</a>
</dt>
<dd>
[*] Flashes a new firmware image into non-volatile storage
on the MMSC for the addressed rack.
An error will occur if more than one rack is addressed by
this command.
The bay portion of the destination is ignored.
<p>
In the first form, <tt>flash from system</tt> (the words
"<tt>from system</tt>" are optional), the image is provided
to the MMSC from the console of a running IRIX system using
the <tt>flashmmsc</tt>(1m) command.
The <tt>flashmmsc</tt> IRIX command and the <b>flash</b>
MMSC command must both be issued from the same terminal
device.
Typically, the <tt>flashmmsc</tt> command is issued first
with the <tt>-m</tt> option,
then an <i>MMSC-escape</i> character is typed and the
<b>flash</b> command entered from the same terminal.
</p>
<p>
In the second form, <tt>flash from console</tt>, the image
is read from the terminal device itself.
This is useful when the user terminal is in fact a terminal
emulator (perhaps on a PC) capable of XMODEM file transfer.
For this form of the <b>flash</b> command, one would issue
the <b>flash</b> command to the MMSC first, then arrange
for an XMODEM or XMODEM-1K file transfer of the firmware
image from the user terminal.
The use of XMODEM-1K may improve the transfer time by as
much as 50%.
</p>
<p>
Be forewarned that this command takes a <i>long</i> time
to run.
In addition to the time it takes to download the firmware
image over a serial line
(MMSC firmware images are approximately 1MB in size)
an additional 100 seconds is required for clearing out
the flash RAM prior to installing the new image.
<b>
Every effort should be made not to interrupt the MMSC
while this command is taking place.
</b>
Early versions of the MMSC do not have sufficient flash
storage to hold two separate images; therefore attempting
to flash a new image will necessarily wipe out the old
firmware image, even if the attempt turns out to be
unsuccessful.
Do not reboot an MMSC that has tried and failed to flash
a new firmware image.
If this does occur, there is an emergency procedure to
flash new firmware onto it if necessary.
For more information on this procedure, see
<a href="flashing.html">Flashing MMSC Firmware</a>.
</p>
<p>
A user must have <i>service</i> authority to execute this
command.
</p>
</dd>
<p>
<dt>
<a name="HELP">
<b>help</b> [ <i>cmd</i> | ALL ]
</a>
</dt>
<dd>
This command is only meaningful from terminals.
<p>
Displays help about the MMSC commands.
If no argument is specified, then a list of available
commands is printed.
If a command is specified, more specific information about
that particular command is printed.
If <b>ALL</b> is specified, specific information about all
available commands is printed.
</p>
<p>
In all cases, the data will be displayed as paged output
(see <a href="#PAGER"><b>pager</b></a> for details).
</p>
</dd>
<p>
<dt>
<a name="KILL">
<b>kill</b> <i>char</i><br>
<b>kill ?</b>
</a>
</dt>
<dd>
This command is only meaningful from terminals.
<p>
Set the <i>kill</i> character for the console on which the
command was entered to <i>char</i>.
<i>char</i> may be either a single literal character, an
integer value representing a single ASCII character, or a
control sequence consisting of a carat followed by a
single character (e.g. &quot;^U&quot;).
The <i>kill</i> character is used while typing an
MMSC/MSC command in console mode to cancel any characters
that have been typed since the last <i>MMSC-escape</i>
character.
In MMSC mode, the <i>kill</i> character cancels any
characters that have been typed since the last prompt was
printed.
</p>
<p>
The default <i>kill</i> character is <TT>Control-U</TT>.
</p>
<p>
Note that this does not affect the normal Unix kill
character associated with the console when it is in
passthrough mode.
</p>
<p>
If <b>kill ?</b> is specified, then the current
<i>kill</i> character will be printed.
This implies that in order to use the &quot;?&quot;
character as the actual <i>kill</i> character, it is
necessary to specify it using its numeric ASCII code.
</p>
</dd>
<p>
<dt>
<a name="LOG">
<b>log</b> [<i>log</i>] <b>clear</b><br>
<b>log</b> [<i>log</i>] [<b>dump</b>] [<i>num</i>]<br>
<b>log</b> [<i>log</i>] <b>disable</b>|<b>enable</b><br>
<b>log</b> [<i>log</i>] <b>info</b>|<b>?</b><br>
<b>log</b> [<i>log</i>] <b>lines</b> <i>num</i><br>
<b>log</b> [<i>log</i>] <b>length</b> <i>num</i><br>
</a>
</dt>
<dd>
[*] The <b>log</b> command is used to manipulate the various
message logs maintained by the MMSC.
<p>
The <i>log</i> argument specifies which log is to be
manipulated.
It may be one of the following values:
</p>
<table border>
<tr>
<th><i>log</i></th>
<th>function</th>
</tr>
<tr>
<td align="center">MSC</td>
<td>
A log of all messages and other output from the
addressed MSC.
<td>
</tr>
<tr>
<td align="center">SYSTEM</td>
<td>
A log of all output generated by the Base I/O board on
the addressed rack, typically consisting of output
from the operating system.
</td>
</tr>
<tr>
<td align="center">TERMINAL</td>
<td>
A log of all output that has been sent to the main
terminal console attached to the addressed rack.
This is different from the SYSTEM log in that it may
contain output from the MSC and MMSC input modes, as
well as any messages received from an MSC (typically
generated by various PROM's during system
initialization).
</td>
</tr>
<tr>
<td align="center">ALTCONS</td>
<td>
A log of all output that has been sent to the
alternate console attached to the addressed rack.
</td>
</tr>
<tr>
<td align="center">DEBUG</td>
<td>
A log of all debugging messages produced by the
addressed rack's MMSC.
</td>
</tr>
<tr>
<td align="center">DISPLAY</td>
<td>
A log of each command issued by the MMSC display and
the corresponding response.
</td>
</tr>
</table>
<p>
If <i>log</i> is not specified, the default is
<b>msc</b>.
</p>
<p>
The <b>clear</b> subcommand causes the contents of the
specified log to be discarded.
Logging will continue as usual unless it has been
disabled with the <b>disable</b> subcommand.
</p>
<p>
The <b>dump</b> subcommand causes the contents of the
specified log to be dumped on the current terminal.
The data will be displayed as paged output (see
<a href="#PAGER"><b>pager</b></a> for details).
If <i>num</i> is specified, then only the last <i>num</i>
lines of the log will be dumped.
This is the default subcommand if none is specified.
</p>
<p>
The <b>disable</b> subcommand will cause logging of data
to the specified log to be stopped.
Any data that is currently in the log will remain
unchanged.
The <b>enable</b> subcommand will resume logging.
</p>
<p>
The <b>info</b> subcommand shows information about the
specified log, such as its size and its enable/disable
state.
The <b>?</b> subcommand does the same thing.
</p>
<p>
The <b>lines</b> subcommand sets the maximum size of the
specified log to <i>num</i> lines, where a
&quot;line&quot; is defined to be a sequence of characters
ending with either CR/LF or LF/CR.
The actual number of lines that can be held in a log is
also subject to the average line length (see below).
The change will not take effect until the MMSC has been
reset (see <a href="#RESET_MMSC"><b>reset_mmsc</b></a>).
If <b>default</b> is specified for <i>num</i> then the
actual value will be taken from the
<b>LOG_DFLT_NUMLINES</b> environment variable.
</p>
<p>
The <b>length</b> subcommand sets the average line length
of lines in the buffer to <i>num</i>.
The total amount of storage set aside for log data is the
product of the log's <b>lines</b> and <b>length</b>
values.
If the <b>length</b> value is too small, then the log
might wrap before it contains the maximum number of lines.
If the <b>length</b> value is too large, it will waste
storage.
A change to the length value will not take effect until
the MMSC has been reset (see
<a href="#RESET_MMSC"><b>reset_mmsc</b></a>).
If <b>default</b> is specified for <i>num</i> then the
actual value will be taken from the
<b>LOG_DFLT_LINELEN</b> environment variable.
</p>
<p>
The <b>lines</b>, <b>length</b> and
<b>enable</b>/<b>disable</b> settings for each log are
separate from the other logs.
They are saved in NVRAM and will be restored after the
MMSC has been reset.
</p>
<p>
A user must have <i>service</i> authority to execute the
<b>lines</b>, <b>length</b>, <b>enable</b> or
<b>disable</b> subcommands.
</p>
</dd>
<p>
<dt>
<a name="MMSC">
<b>mmsc</b> [<i>args</i>]
</a>
</dt>
<dd>
[*] If <i>args</i> are present, they are sent along as a
command to the MMSC on the addressed rack(s).
<i>args</i> may be a valid MMSC command <em>only</em>;
MSC commands are not recognized in this case and will
result in an <TT>ERROR CMD</TT> response.
This usage is mostly useful for avoiding ambiguity with
MSC commands.
It can also be used to send a normally &quot;local&quot;
command (e.g. <a href="#ESC"><b>esc</b></a>) to a remote
MMSC.
<i>args</i> is assumed to start at the first non-blank
character following the command.
<p>
If <i>args</i> is not specified, enter MMSC mode.
In MMSC mode, the MMSC prompt:
<listing>
MMSC&gt;
</listing>
is displayed, and output from the IO6 is held and/or
discarded.
Any input from the terminal keyboard is handled directly
by the local MMSC, using the address specified with the
<b>mmsc</b> command as the default destination.
To leave MMSC mode, use the command
<a href="#EXIT"><b>exit</b></a> or type the current
<i>exit</i> character.
</p>
<p>
Ordinarily, the <i>MMSC-escape</i> character has no
special meaning in MMSC mode and will processed like any
other character.
However, if the <i>first</i> character of a line is the
<i>MMSC-escape</i> character, it will instead be
discarded.
This allows automated tools (and engineers with bad
memories) to type the same sequence of characters in order
to issue an MMSC or MSC command from either MMSC or
console mode.
</p>
</dd>
<p>
<dt>
<a name="MMSG">
<b>mmsg</b> [ <b>on</b> | <b>terse</b> | <b>off</b> ]<br>
<b>mmsg rack</b> [<i>rackid</i>]<br>
<b>mmsg altrack</b> [<i>rackid</i>]
</a>
</dt>
<dd>
[*] The first form of this command is only meaningful from
terminals and ignores any destination.
The second and third forms of this command do honor a
destination.
<p>
<b>mmsg</b> controls the display of unsolicited messages
from the MSC (e.g. those sent to the MMSC in response to
an MSC &quot;acp&quot; command).
It only affects the console on which it was entered.
When <b>mmsg</b> is <b>off</b>, unsolicited MSC messages
are discarded silently.
When <b>mmsg</b> is <b>on</b>, all unsolicited MSC messages
are echoed to the input source on their own lines
(i.e. preceded and followed by
<i>carriage-return/linefeed</i> as needed), prefixed with
a string identifying the originating MSC.
The prefix is of the form:
</p>
<listing>
<b>R</b>&lt;<i>rack-addr</i>&gt;&lt;<i>bay-addr</i>&gt;-
</listing>
<p>
For example:
</p>
<listing>
R1U-This is a message from rack 1 bay U
</listing>
<p>
When <b>mmsg</b> is <b>terse</b>, unsolicited MSC messages
are still echoed on their own line, but the identifying
prefix is omitted.
</p>
<p>
If <b>mmsg</b> is entered without arguments, the current
<b>mmsg</b> mode is cycled in some undefined, but
consistent, order.
</p>
<p>
If <b>mmsg</b> is entered in the second form, then any
unsolicited MSC messages generated by the addressed racks
will be sent to the TERMINAL device attached to the rack
specified by <i>rackid</i>.
Specifying a <i>rackid</i> of <b>none</b> will cause MSC
messages to be discarded, and so is functionally
equivalent to <b>mmsg off</b>.
</p>
<p>
Because an MMSC is not able to detect the presence of a
BaseIO card on a particular rack, it is necessary to run
this command at least once when the system is first set up
in order to receive unsolicited MSC messages.
The command would typically be of the form
&quot;<tt>rack&nbsp;all&nbsp;mmsg&nbsp;rack</tt>&nbsp;
<i>rackid</i>&quot;
</p>
<p>
<b>mmsg rack</b> without a <i>rackid</i> will return the
ID of the rack currently designated to receive unsolicited
MSC messages.
</p>
<p>
The third form of <b>mmsg</b> is similar to the second
form except that it specifies a rack whose ALTERNATE
console port should receive unsolicited messages.
The <i>rackids</i> specified for <b>rack</b> and
<b>altrack</b> do not have to be the same.
Either or both may be <b>none</b>.
</p>
<p>
The default <b>mmsg</b> mode is <b>off</b>.
The default rack to receive unsolicited MSC messages on
both the TERMINAL and ALTERNATE ports is 1.
</p>
</dd>
<p>
<dt>
<a name="MSC">
<b>msc</b> [<i>args</i>]
</a>
</dt>
<dd>
[*] If <i>args</i> are present, they are sent along to the
MSC on the addressed bay(s), but otherwise ignored.
They will be prefixed with the MSC escape character,
CTRL-T.
This could be useful for forcing a command to be passed on
to the MSC, such as when the command has the same name as
an MMSC command.
<i>args</i> is assumed to start at the first non-blank
character following the command.
For information on individual MSC commands, see
<a href="http://babylon.engr/lego/ip27prom/ip27prom.html#ELSCCommands">
the IP27 PROM Technical Reference Manual
</a>.
<p>
If <i>args</i> is not specified, MSC mode is entered.
MSC mode is (supposed to be) functionally equivalent to
having a direct connection to the MSC port: all keyboard
input is echoed directly to the addressed MSC, and all
output from the MSC is echoed to the user terminal
without modification.
There are two exceptions.
The first is that the current <i>exit-character</i> will
cause an exit from MSC mode and return you to the
previous input mode.
(There is no way to send an <i>exit-character</i> to the
MSC in MSC mode.)
The second exception is that any <i>output</i> from the
MSC that begins with a <tt>Control-T</tt> character is
assumed to be a message to the MMSC; all characters up to
and including the next carriage return will be handled by
the MMSC on the same rack as the MSC.
</p>
<p>
When the <b>msc</b> command is used without <i>args</i>
specified, it may address only one MSC or else an error
will occur.
</p>
<p>
Note that when an MSC has been attached to a console with
the <b>msc</b> command, that MSC is no longer available
to perform commands issued from other consoles.
For example, if the alternate console is in MSC mode,
then any MSC commands issued from the normal terminal
or the display will be rejected.
The error message in this case is typically
<tt>ERROR&nbsp;INUSE</tt>.
</p>
<p>
Output from the system will be held and/or discarded while
in MSC mode.
Messages from other MSC's will be displayed only after a
CR/LF sequence has been echoed to the user terminal, or if
the terminal has been inactive for some period of time
(approximately 2 seconds).
</p>
</dd>
<p>
<dt>
<a name="NAP_TIME">
<b>nap_time</b> [ <i>value</i> | <b>default</b> ]
</a>
</dt>
<dd>
This command is only meaningful from a terminal.
<p>
If <i>value</i> is specified, then the <i>nap interval</i>
for the console on which the command is entered is set to
<i>value</i> microseconds.
The <i>nap interval</i> is the frequency with which the
MMSC will attempt to perform various clean-up tasks when
the console is otherwise idle.
The most visible effect of these clean-up tasks is that
any incomplete messages which have been received from an
MSC will be printed.
(An &quot;incomplete message&quot; is one which is not
terminated with a CR/LF combination.)
</p>
<p>
If <b>default</b> is specified instead of a <i>value</i>,
the nap interval will be reset to the system default,
which is normally 2 seconds.
</p>
<p>
If neither <i>value</i> nor <b>default</b> is specified,
then the current nap interval will be printed.
</p>
<p>
A user must have <i>service</i> authority to execute this
command.
</p>
</dd>
<p>
<dt>
<a name="OPTIONS">
<b>options</b> [<i>value</i>]
</a>
</dt>
<dd>
This command is only meaningful from a terminal.
<p>
Sets the option flags to <i>value</i>.
The currently defined option flags, which can be
logically OR'ed together in almost any combination,
include:
</p>
<table border>
<tr>
<td>0x00000001</td>
<td>
Do not display the MMSC prompt in console mode until
the character <i>after</i> the MMSC escape character
has been typed.
This may be useful for people who expect to send the
MMSC escape to the system (i.e. by typing it twice)
from time to time.
</td>
</tr>
<tr>
<td>0x00000002</td>
<td>
If the end-of-command character (usually
<i>carriage-return</i>) is typed immediately after the
MMSC escape character, enter MMSC mode on the local
rack.
This would be equivalent to typing the command
<tt>rack&nbsp;local&nbsp;mmsc</tt>.
This may be useful for people who use mmsc mode
frequently.
</td>
</tr>
<tr>
<td>0x00000004</td>
<td>
The MMSC always sends an <tt>ech 0</tt> command to
the MSC before it takes control of it, so when
control is given to the user after entering MSC
mode, echoing will not normally be enabled.
When this option is set, an <tt>ech 1</tt> command
will be sent to the MSC prior to entering MSC mode.
This should cause the MSC to echo keyboard input
as it is typed.
</td>
</tr>
<tr>
<td>0x00000008</td>
<td>
Ordinarily, blank messages from the MSC are ignored,
even with <b>mmsg on</b>.
When this option is set, blank messages from the MSC
will be printed like any other message.
</td>
</tr>
<tr>
<td>0x80000000</td>
<td><a href="rob_mode.html">Rob Mode</a></td>
</tr>
</table>
</dd>
<p>
<dt>
<a name="PAGER">
<b>pager</b> { <b>back</b> | <b>fwd</b> | <b>quit</b> }
<i>char</i><br>
<b>pager</b> [ <b>info</b> | <b>?</b> ]<br>
<b>pager lines</b> <i>val</i><br>
<b>pager</b> { <b>on</b> | <b>off</b> }<br>
</a>
</dt>
<dd>
The <b>pager</b> command controls the built-in pager used by
the MMSC to display large blocks of output, such as logs or
help messages.
It is conceptually similar to the standard unix command
<i>more</i>.
<p>
The <b>back</b> subcommand is used to specify the
character that is typed to scroll backwards through the
paged output.
<i>char</i> may be either a single literal character, an
integer value representing a single ASCII character, or a
control sequence consisting of a carat followed by a
single character (e.g. &quot;^U&quot;).
Notice that the only way to specify a &lt;space&gt;
character is with its integer value, 32.
The default <b>back</b> character is
&quot;<tt>b</tt>&quot;.
</p>
<p>
Similarly, the <b>fwd</b> subcommand is used to
specify the character that is typed to scroll forwards
through the output, and the <b>quit</b> subcommand
specifies the character that is typed to discontinue the
output.
The default <b>fwd</b> character is &lt;space&gt;, and
the default <b>quit</b> character is
&quot;<tt>q</tt>&quot;.
</p>
<p>
The <b>info</b> subcommand is used to display information
about the current pager settings.
The <b>?</b> subcommand does the same thing.
This is the default if no subcommand is specified.
</p>
<p>
The <b>lines</b> subcommand is used to set the number of
lines in a single page of output.
After <i>val</i> lines have been displayed, a trailer line
will be printed and output will be halted until the
<b>fwd</b>, <b>back</b> or <b>quit</b> character has been
typed.
Specifying <b>default</b> for <i>val</i> will cause the
default value to be restored.
The default setting is controlled by the PAGE_DFLT_LINES
environment variable, which is typically 23 lines (leaving
room for a single trailer line on a standard 24-line
terminal).
</p>
<p>
The <b>off</b> subcommand turns off paged output.
Any output that would ordinarily be paged is instead sent
to the terminal in one single, large block.
The <b>on</b> subcommand reverses this.
</p>
<p>
The <b>back</b>, <b>fwd</b>, <b>quit</b> and
<b>on</b>/<b>off</b> settings for each console are
separate from the other consoles.
They are saved in NVRAM and will be restored after the
MMSC has been reset.
</p>
</dd>
<p>
<dt>
<a name="PASSWORD">
<b>password</b> { <b>set</b> | <b>setmmsc</b> } <i>passwd</i>
<i>string</i><br>
<b>password unset</b> <i>passwd</i><br>
</dt>
<dd>
[*] The <b>password</b> command changes the <i>passwd</i>
password.
Unless otherwise specified, you must be at the
<i>supervisor</i> or <i>service</i> authority level to use
this command.
<p>
<i>passwd</i> may be one of the following values:
</p>
<table border=border>
<tr>
<th><i>passwd</i></th>
<th>Corresponding password</th>
</tr>
<tr>
<td><b>msc</b></td>
<td>
The password on the addressed MSC.
This is the same password that is specified with the
MSC <b>pas</b> command.
This will be passed along to the MSC before any
restricted commands when the user is in the
<i>supervisor</i> or <i>service</i> authority level.
</td>
</tr>
<tr>
<td><b>supervisor</b></td>
<td>
The password used to enter the <i>supervisor</i>
authority level.
</td>
</tr>
<tr>
<td><b>service</b></td>
<td>
The password used to enter the <i>service</i>
authority level.
You must be at the <i>service</i> authority level to
change this password.
</td>
</tr>
</table>
<p>
The <b>set</b> subcommand changes the password
<i>passwd</i> to <i>string</i>.
If <i>passwd</i> is <b>msc</b>, then the password will be
changed on the MSC first by passing the command
&quot;<tt>pas&nbsp;s&nbsp;</tt><i>string</i>&quot; to the
MSC.
If the command does not succeed, then the password will
not be changed on the MMSC either.
</p>
<p>
The <b>setmmsc</b> subcommand is identical to the <b>set</b>
subcommand, except when <i>passwd</i> is <b>msc</b>.
In that case, the password will <em>not</em> be set on the
MSC first.
This is useful if the password had been changed on the MSC
without the MMSC's knowledge (for example, while in the
MSC input mode).
</p>
<p>
The <b>unset</b> subcommand is used to remove the password
associated with <i>passwd</i>.
Note that the MSC does not have a notion of &quot;removing
the password&quot;, so specifying a <i>passwd</i> of
<b>msc</b> will affect the MMSC only.
In this case, no attempt is made to set or revoke the MSC
supervisor mode prior to sending commands to it.
</p>
</dd>
<p>
<dt>
<a name="PRINTENV">
<b>printenv</b> [<b>all</b>] [<b>default</b>]
</a>
</dt>
<dd>
[*] Displays the names and values of any environment
variables that have non-default settings.
If <b>all</b> is specified, all of the known environment
variables will be listed.
Those with non-default values will have their values printed
as well.
If <b>default</b> is specified, the default value for each
variable will also be displayed.
The data will be displayed as paged output (see <b>pager</b>
for details).
</dd>
<p>
<dt>
<a name="RACKID">
<b>rackid</b> [<i>value</i>]
</a>
</dt>
<dd>
[*] If <i>value</i> is specified, the rack ID of the
addressed rack is changed from its current setting to
<i>value</i>.
This setting is saved in NVRAM and should persist across
power cycles and resets.
The change becomes effective immediately.
This may cause trouble if you happen to be in MMSC or MSC
mode when the <b>rackid</b> command is issued, since the
rack ID that was previously addressed by MMSC/MSC mode is
no longer valid.
<p>
If <i>value</i> is not specified, then the destination is
ignored and the current rack ID of the <b>local</b> rack
is returned.
</p>
<p>
A user must have <i>service</i> authority to execute this
command.
</p>
</dd>
<p>
<dt>
<a name="RAT">
<b>rat</b>
</a>
</dt>
<dd>
Places the console into RAT (Remote Access Tool) mode.
<p>
RAT mode is sort of a combination of Console, MMSC and MSC
input modes that is supposed to make the MMSC behave
somewhat like an MSC.
It is intended mainly for use by certain automated service
tools.
It has the following characteristics:
</p>
<ul>
<li>
User input is not echoed.
</li>
<li>
Any input that is not preceded by the <i>MMSC-escape</i>
character is discarded.
</li>
<li>
User input is treated as if it had been entered in MMSC
mode: if it is a valid MMSC command, it is processed as
such, otherwise it is passed on to the addressed MSC(s).
</li>
<li>
Response and ELSC messages are printed in the same way
as for Console mode.
</li>
</ul>
</dd>
<p>
<dt>
<a name="RESET_MMSC">
<b>reset_mmsc</b>
</a>
</dt>
<dd>
[*] Restarts the addressed MMSC(s).
This may be useful after flashing a new firmware image onto
the MMSC so that the changes can be picked up.
This can also be used if the MMSC and/or system console has
hung even though the system itself is still running.
Of course, if it is used for this second purpose, then it
would be appropriate to file a bug report/service call.
<p>
This does <i>not</i> affect IRIX or any other part of the
system.
Only the addressed full-featured system controllers are
rebooted.
</p>
<p>
For historical reasons, the command <b>reboot_mmsc</b>
does the same thing as <b>reset_mmsc</b>.
</p>
<p>
A user must have <i>service</i> authority to execute this
command.
</p>
</dd>
<p>
<dt>
<a name="RESET_NVRAM">
<b>reset_nvram</b>
</a>
</dt>
<dd>
[*] Resets the contents of non-volatile storage on the
addressed MMSC(s) to default values.
Obviously, this command should be used with caution.
<p>
Values that are stored in non-volatile storage include
the rack ID, MMSC serial port speeds, and the
<a name="#MMSG"><b>mmsg</b></a> rack settings.
</p>
<p>
A user must have <i>service</i> authority to execute this
command.
</p>
</dd>
<p>
<dt>
<a name="RMSG">
<b>rmsg</b> [ <b>on</b> | <b>error</b> | <b>off</b> ]
</a>
</dt>
<dd>
This command is only meaningful from terminal devices.
<p>
<b>rmsg</b> controls the echoing of responses to MSC or
MMSC commands.
It only affects the console on which the command was
entered.
When <b>rmsg</b> is <b>off</b>, the response string that
is generated by an MSC or MMSC command is discarded
silently.
When <b>rmsg</b> is <b>on</b>, all command responses are
echoed to the input source on their own lines
(i.e. preceded and followed with
<i>carriage-return/linefeed</i> as needed).
When <b>rmsg</b> is <b>error</b>, only error responses
(i.e. those not prefixed by &quot;OK&quot; or
&quot;OFFLINE&quot;) are echoed.
</p>
<p>
If <b>rmsg</b> is entered without arguments, the current
<b>rmsg</b> mode is cycled in some undefined, but
consistent, order.
</p>
<p>
In either <b>error</b> or <b>on</b> mode, the terminal
does not return to its normal passthrough mode until a
response has actually been received or some timeout has
been exceeded.
</p>
<p>
The default setting for <b>rmsg</b> is <b>on</b>.
</p>
</dd>
<p>
<dt>
<a name="SCAN">
<b>scan</b>
</a>
</dt>
<dd>
[*] Check for the presence or absence of the addressed MSC's
and update the internal table of module number to physical
address mappings.
This may be necessary if a module has become unavailable or
its module number has changed without the MMSC's knowledge.
<p>
Unlike most commands, if &quot;<tt>bay all</tt>&quot; is
specified in the destination for this command, then
<em>all</em> bays in the specified racks will be probed,
even if they were originally thought to be offline.
This is useful for determining if a formerly offline MSC
has been brought online somehow.
&quot;<tt>module all</tt>&quot; behaves normally and so is
not useful for finding new modules.
</p>
<p>
A user must have <i>service</i> authority to execute this
command.
</p>
</dd>
<p>
<dt>
<a name="SETENV">
<b>setenv</b> <i>var</i> [[<b>=</b>] <i>value</i>]
</a>
</dt>
<dd>
[*] Change the setting of environment variable <i>var</i> to
<i>value</i>.
<i>value</i> must normally be an integer.
The &quot;=&quot; separating <i>var</i> and <i>value</i>
is optional.
If it is specified, there should be no whitespace separating
it from either <i>var</i> or <i>value</i>.
If <i>value</i> is not specified, then the current setting
of the environment variable <i>var</i> is displayed.
<p>
Only environment variables known to the MMSC may be stored
or displayed.
Valid environment variables include:
</p>
<table border>
<tr>
<th>Variable</th>
<th>Function</th>
<th>Default value</th>
</tr>
<tr>
<td>DEBOUNCE_DELAY</td>
<td>
The debounce delay (in microseconds) used by the MMSC
display switches.
It may be helpful to increase this value if single key
presses are being registered multiple times.
On the other hand, if some key presses seem to ignored
when pressing keys rapidly, it may help to decrease
this value.
</td>
<td align=center>200000</td>
</tr>
<tr>
<td>LOG_DFLT_NUMLINES</td>
<td>
The default number of lines in a log.
Once a log has been filled with this many lines of
data, older lines will be discarded to make room for
new lines.
The MMSC must be reset (see
<a href="#RESET_MMSC"><b>reset_mmsc</b></a>) for
this setting to take effect.
</td>
<td align=center>200</td>
</tr>
<tr>
<td>LOG_DFLT_LINELEN</td>
<td>
The default average line length for a log.
The total amount of storage allocated for logged
messages is NUMLINES * LINELEN.
If many lines in a log are larger than LINELEN
characters in length, then it may be necessary to
discard older lines even before the log contains
NUMLINES lines.
The MMSC must be reset (see
<a href="#RESET_MMSC"><b>reset_mmsc</b></a>) for
this setting to take effect.
</td>
<td align=center>80</td>
</tr>
<tr>
<td>PAGE_DFLT_LINES</td>
<td>
The default number of lines per page when paging
output.
</td>
<td align=center>23</td>
</tr>
<tr>
<td>PWR_DELAY</td>
<td>
The MSC &quot;pwr u&quot; and &quot;pwr c&quot;
commands may be intercepted in order to sequence the
power to two or more racks one rack at a time to
avoid an excessive power surge.
(See
<a href="#InterceptedCommands">Intercepted MSC Commands</a>,
below.)
This variable sets the number of microseconds to wait
between &quot;pwr&quot; commands.
</td>
<td align=center>5000000</td>
</tr>
</table>
<p>
A user must have <i>service</i> authority to execute this
command.
</p>
</dd>
<p>
<dt>
<a name="STEAL">
<b>steal</b>
</a>
</dt>
<dd>
This command is only meaningful from the terminal or alternate
console device, and only when it is in MMSC mode.
If another device is currently in console mode, it is placed
into MMSC mode.
Then the device on which the command was entered is placed
into console mode.
In effect, the system console is &quot;stolen&quot; by the
device on which the command was entered.
<p>
A user must have <i>supervisor</i> authority to execute this
command.
</p>
</dd>
<p>
<dt>
<a name="UNSETENV">
<b>unsetenv</b> <i>var</i>
</a>
</dt>
<dd>
[*] Restore the default value for environment variable
<i>var</i>.
</dd>
<p>
<dt>
<a name="UNSTEAL">
<b>unsteal</b>
</a>
</dt>
<dd>
This command is only meaningful from the terminal or alternate
console device, and only when it is in console mode.
It places the &quot;other&quot; device into console mode,
effectively undoing a <a href="#STEAL">steal</a> command.
If the device on which the command is entered happens to be
the normal terminal device, then the &quot;other&quot;
console is the alternate console device.
Likewise, if the command is entered from the alternate
console device, the &quot;other&quot; console is the normal
terminal device.
The device on which the command was entered is then placed
into either MMSC mode (when the device is the terminal) or
RAT mode (when the device is the alternate console).
<p>
A user must have <i>supervisor</i> authority to execute this
command.
</p>
</dd>
<p>
<dt>
<a name="VER">
<b>ver</b>
</a>
</dt>
<dd>
[*] Returns a string indicating the MMSC firmware revision.
This command returns a different string than the MSC
&quot;ver&quot; command, and so can be used from a tty
device to determine if it is attached to an MSC or an MMSC.
The format of the response is
&quot;MMSC&nbsp;<i>major</i>.<i>minor</i>&quot;, for
example:
<listing>
MMSC 1.2
</listing>
<p>
A user must have <i>service</i> authority to execute this
command.
</p>
</dd>
<p>
<dt>
<a name="EMPTY">
<i>carriage-return</i>
</a>
</dt>
<dd>
If neither a destination nor a command follows an MMSC
escape character (i.e. the first character of the command is
carriage-return, essentially an &quot;empty command&quot;)
then the command is ignored.
<p>
If a destination but no command is specified, then the
destination becomes the new &quot;default
destination&quot; (see above).
</p>
</dd>
</dl>
<hr>
<a name="InterceptedCommands">
<h3>Intercepted MSC Commands</h3>
</a>
<p>
Certain MSC commands are intercepted by the MMSC before being
passed along to the MSC itself.
This interception is <i>not</i> performed when the commands
are sent to an MSC using the <b>msc <i>args</i></b> command.
In general, you should avoid sending commands to an MSC with
the <b>MSC <i>args</i></b> command whenever possible, since
the additional actions performed by the MMSC are usually
beneficial.
The intercepted commands and the additional actions associated
with them include:
</p>
<table border=border>
<tr>
<th>MSC command</th>
<th>intercepted actions</th>
</tr>
<tr>
<td align=center>
<b>pas s</b> <i>pw</i>
</td>
<td>
The command is converted into the MMSC command
&quot;<b>password&nbsp;set&nbsp;msc</b>&nbsp;<i>pw</i>&quot;,
which should have the same effect on the MSC password,
plus the added benefit of setting the password on the MMSC
as well.
</td>
</tr>
<tr>
<td align=center>
<b>pwr u</b><br>
<b>pwr c</b>
</td>
<td>
The command will be forwarded to the addressed MSC's,
but one rack at a time with a time delay between each.
This will prevent all of the modules from being powered on
nearly simultaneously, which could cause a fairly severe
power surge.
</td>
</tr>
<tr>
<td align=center>
<b>ver</b>
</td>
<td>
The MMSC version string, rather than the MSC version, is
printed, as documented above.
</td>
</tr>
</table>
<hr>
<p>
<a href="index.html">up a level</a>
</p>
<p>
<address>
Send questions and comments to:
<a href="mailto:rdb@uniscan.engr.sgi.com">Rob Bradshaw</a>
</address>
</p>
<!-- hhmts start -->
Last modified: Wed Dec 11 19:24:12 PST
<!-- hhmts end -->
</body>
</html>