prom(1M) prom(1M)
NAME
prom - PROM monitor
DESCRIPTION
The PROM monitor is a program that resides in permanently programmed
read-only memory, which controls the startup of the system. The PROM is
started whenever the system is first powered on, reset with the reset
button, or shutdown by the administrator.
The PROM contains features that vary from system to system. Description
of various commands, options, and interfaces below may not apply to the
PROM in your system and may vary between systems. Furthermore, because
PROMs are not normally changed after the manufacture of the system, newly
added features are not present in older systems.
2
Systems such as the Indigo R4000, Indigo , Indy, O2, Onyx, and CHALLENGE
contain an ARCS PROM. Machines that contain an MIPS R8000 or R10000 such
2 2
as the POWER CHALLENGE, POWER Onyx, POWER Indigo , Indigo 10000, and
OCTANE use a 64-bit version of the ARCS PROM. The ARCS PROM offers the
same functionality as previous PROMs, but in some cases with a different
interface. Refer to the ARCS PROM section below for details.
When the system is first powered on, the PROM runs a series of tests on
the core components of the system. It then performs certain hardware
initialization functions such as starting up SCSI hard disks,
initializing graphics hardware and clearing memory. Upon successful
completion of these tasks, the PROM indirectly starts the operating
system by invoking a bootstrap loader program called sash, which in turn
reads the IRIX kernel from disk and transfers control to it.
Menu Commands
By default, the PROM attempts to boot the operating system kernel when
the system is powered on or reset. Before doing so, however, the
opportunity to press the <Escape> key is given. If the <Escape> key is
pressed within approximately ten seconds, the PROM displays a menu of
alternate boot up options. These other choices allow various types of
system maintenance to be performed:
1. Start System
This option causes the system to boot in the default way. It is the
same as if the system had been allowed to boot on its own.
2. Install System Software
This option is used when system software needs to be installed or
upgraded. The PROM first attempts to find a tape drive on the
system and if one is found, it prompts the user to insert the
installation tape in it. If a tape device is not found, then
installation is expected to take place by Ethernet. In this case,
the PROM prompts the user for the name of the system that will be
used as the server.
Page 1
prom(1M) prom(1M)
Systems with an ARCS PROM uses a menu to select the installation
device. See ARCS PROM section below for details.
3. Run Diagnostics
This option invokes the extended hardware diagnostic program, which
performs a thorough test of the CPU board and any graphics boards
present. It reports a summary.
4. Recover System
This option can be used to perform special system administration
tasks such as restoring a system disk from backup tapes. It follows
a sequence similar to installing system software, but instead of
starting the installation program, it invokes an interactive
restoration tool.
5. Enter Command Monitor
Additional functions can be performed from an interactive command
monitor. This option puts the PROM into a manual mode of operation.
6. Select Keyboard Layout
Some systems display a sixth option when the console is on the
graphics display which allows the keyboard map to be interactively
selected for SGI supported international keyboards.
Manual Mode
The PROM command monitor allows the user to customize certain features of
the boot process for one-time only needs or longer term changes. The
command monitor has some features that are similar to an IRIX shell such
as command line options and environment variables. Some of the
environment variables used in the PROM are stored in nonvolatile RAM,
which means that their values are preserved even after the power to the
system is turned off.
The command monitor has a different method of specifying disks and files
than is used under IRIX. A pathname is formed by prefixing the filename
with a device name as shown:
devicename(controller,unit,partition)filename
Valid device names include:
tpsc SCSI tape drive
dksc SCSI disk drive
bootp network by BOOTP and TFTP protocols (ethernet only)
The controller designates which hardware controller to use if multiple
controllers for the same type of device exist. Controllers are numbered
starting at zero. The unit designates which drive to use when a single
controller is used with multiple drives. When used with a SCSI device,
the unit number is the same as the SCSI target number for the drive. The
partition designates which disk partition is to be used. Partitions are
numbered 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f. The controller,
Page 2
prom(1M) prom(1M)
unit, and partion all default to zero.
The devices supported by the PROM varies from system to system.
Manual Mode Commands
auto Attempts to boot the system into normal operation. This is the
equivalent of the Start System menu command.
boot [-f] [-n] pathname
Starts an arbitrary standalone program or kernel as specified
by its arguments. The -f option suppresses the invocation of
the bootstrap loader program. The -n option causes the named
program to be loaded, but not started.
eaddr Prints the Ethernet address of the built-in Ethernet
controller. This address is set at the factory and cannot be
changed.
date [mmddhhmm[ccyy|yy][.ss]]
Prints the date or sets the date when given an argument. The
PROM does not understand time zones, so times should be given
relative to GMT.
exit Exits manual mode and returns to the PROM menu.
help Displays a short summary of the commands available in manual
mode.
init Causes a partial restart of the PROM. This command can be used
to change the default console immediately. See the console
environment variable.
hinv Lists the hardware present in the system. This list includes
any disk or tape drives, memory, and graphics options. It
lists only those devices known to the PROM and may not include
all optional boards.
ls device List files contained on the device specified. This can be used
to examine devices whose layout is known by the PROM such as
the disk volume header. It cannot be used to list directories
on disk partitions containing IRIX filesystems.
off Turns off the power. Supported only on a subset of systems
with software power control.
passwd Set the PROM password. The PROM password can be set to
restrict operation of certain PROM modes. With a password set,
any attempt to do anything other than a standard system boot
requires that the password be reentered. The password is
remembered after the system is powered off.
Page 3
prom(1M) prom(1M)
If the password is forgotten, some systems allow the superuser
to reset it while running IRIX. Use the nvram command to set
the passwdkey variable to a null string (nvram passwdkey "").
Other systems also have a jumper on the system board that can
be removed to disable the PROM password. In addition some
systems force the console environment variable to g while the
jumper is removed. This jumper should only be removed
temporarily in order to reset the password or fix the console
2
environment variable. Indy, Indigo and OCTANE have this
feature.
printenv List the current state of the PROM environment variables. Some
of the variables listed retain their value after the system is
powered off.
resetenv Set all of the PROM nonvolatile environment variables to their
factory defaults. This does not affect the PROM password.
resetpw Remove the PROM password. With no PROM password set, all
commands and menu options function without restriction.
setenv [-p] variable value
Set the specified environment variable to a particular value.
Environment variables that are stored in nonvolatile RAM are
changed there as well. The -p option specifies that this
variable should be saved as a persistent variable by means of
adding the variable to nonvolatile RAM. This is particularly
useful for setting frequently used options when starting up the
system. Note that a fixed nonvolatile RAM variable is not
superseded by this option, but the command behaves as if the -p
flag is not present. Currently this option is available only
on some system types. Among them are the Indy, the O2, OCTANE
and the Origin series.
single Start the system in single user mode. The system is booted as
in the auto command described above, except that it enters
initstate s instead of initstate 2. See init(1M) for more
information on initialization states.
unsetenv variable
Disassociates any value with the named environment variable.
version Prints a message containing information about the PROM.
In addition to the commands above, a pathname can be entered directly,
which the PROM attempts to load and execute.
PROM Environment Variables
netaddr Used when booting or installing software from a remote system
by Ethernet. This variable should be set to contain the
Internet address of the system. It is stored in nonvolatile
RAM.
Page 4
prom(1M) prom(1M)
dbaud Diagnostic baud rate. It can be used to specify a baud rate
other than the default when a terminal connected to serial port
#1 is to be used as the console. This variable is stored in
nonvolatile RAM.
bootfile This variable controls two aspects of the automatic boot up
process. First, it names the standalone loader that is used as
an intermediary when booting from disk. Second, the device
portion of the filename is used to determine the default boot
disk. The PROM assumes that the disk specified as part of the
standalone loader pathname is the disk where the IRIX root
filesystem exists. Furthermore, during software installation,
the PROM uses that disk's swap partition for the miniroot. The
actual partitions assumed by the PROM to contain the root
filesystem and swap area are determined by reading the volume
header. See vh(7M) for more information. This variable is
stored in nonvolatile RAM.
bootmode The default mode of operation after you turn on power to the
system is determined by the bootmode variable. If the bootmode
is set to c, then the system is automatically booted whenever
it is reset or power is turned on to the system. If the
bootmode is set to m, the PROM displays the menu and waits for
a command instead. Setting bootmode to d has the same affect
as m, with the addition of more verbose power-on diagnostics.
This variable is stored in nonvolatile RAM.
boottune Selects among the available boot tunes. It is specified as a
small integer such as 1, which is the default tune. A setting
2
of 0 selects a random tune. Currently only the POWER Indigo
2
and the Indigo 10000 support this variable. This variable is
stored in nonvolatile RAM.
autopower On systems with software power control, a setting of y allows
the system to automatically power back on after an AC power
failure. The default setting of n requires the power switch to
be pressed to restart the system. This variable is stored in
nonvolatile RAM.
console The system console can be set with the console variable. If
console is set to g or G, the console is assumed to be the
graphics display. On some systems with multiple graphics
adapters, setting console to g0 (identical to g), g1, or g2 can
be used to select alternate graphics displays. If console is
set to d, the console is assumed to be a terminal connected to
the first serial port. In addition, some systems also accept
d2 for a terminal connected to second serial port. Lastly,
this can be overridden on some systems by removing the password
jumper and forcing the console to g, which is useful for for
recovering from setting console to d when a terminal is not
available. This variable is stored in nonvolatile RAM.
Page 5
prom(1M) prom(1M)
diskless If set to 1, the kernel assumes that the system is to be
started up as a diskless node. This variable is stored in
nonvolatile RAM.
monitor Overrides the default monitor setting when an unrecognized
monitor is attached to an Indy system. Specifying h or H
indicates the attached monitor supports high resolution mode
(1280x1024 @ 60Hz). Otherwise the default resolution is low
resolution (1024x768 @ 60Hz). This variable is usable only on
an Indy system and is stored in nonvolatile RAM.
nogfxkbd If set to 1, the system does not require the keyboard to be
plugged in. By default, if the console is the graphics display
and the keyboard is not plugged in or is otherwise unresponsive
to commands, it is assumed to be broken. The system switches
to the serial terminal console and waits for a command. This
variable is stored in nonvolatile RAM.
notape If set to 1, the PROM assumes that the Ethernet is to be used
for software installation or system recovery even if a tape
drive is present on the system. By default, if the PROM sees a
tape drive in the hardware inventory, it assumes that it will
be used for software installation; setting notape allows that
assumption to be overruled.
volume Sets the speaker volume during boot up. This controls the
volume of the startup, shutdown, and bad graphics tunes
generated on systems with integral audio hardware. This
variable is stored in nonvolatile RAM.
pagecolor Sets the background color of the textport set with a six
character string of hex RGB values. This variable is stored in
nonvolatile RAM.
path The path variable is used with some commands to provide a
default device name. It is derived from the bootfile variable.
prompoweroff
If set to y, the IRIX operating system returns to the PROM to
do the actual powering off of the system. Powering off the
system by the PROM is preceded by the playing of the "shutdown"
tune that is normally played when returning to the PROM monitor
via the shutdown or halt commands. This variable is available
only on Indy systems and must be set with the command setenv -p
prompoweroff y command to retain the setting after power is
turned off.
rebound If set to y, the system attempts to automatically reboot in the
event of a kernel panic overriding the value of the
rebootonpanic systune parameter. This variable is stored in
nonvolatile RAM.
Page 6
prom(1M) prom(1M)
sgilogo If set to y, the SGI logo and other product information is
shown on systems that support the standalone GUI. This
variable is stored in nonvolatile RAM.
ef0mode If the user wants to disable autonegotiation and select prom
ethernet mode manually, this variable needs to be set to one of
{10, H10, F10, 100, H100, F100}, where H means half duplex, F
means full duplex, and numbers mean either 10Mb/sec or
100Mb/sec. This variable exists for OCTANE prom only.
ARCS PROM
Machines with the ARCS PROM behave similar to what is described above.
Changes were made to support the Advanced Computing Environment's (ACE)
Advanced Risc Computing Standard (ARCS), provide a graphical user
interface, and clean up various loopholes in older PROMs. In many cases
efforts were made to maintain old syntax and conventions.
The ARCS document describes system requirements, which includes minimum
system function, procedure entry points, environment variables, hardware
inventory, and other system conventions. Programmatic interfaces and
other hardware requirements are outside the scope of this reference page.
ARCS pathnames are tied directly to the hardware inventory, which is
stored in a tree that represents the system's device architecture. It is
rooted with a system entry and grows to peripheral devices such as a disk
drive. ARCS pathnames are written as a series of type(unit) components
that parallel the inventory tree.
Old-style pathnames are automatically converted to new-style pathnames,
so the old names can still be used. The PROM matches the first device
described by the pathname, so full pathnames are not always required.
The -p option to hinv prints the pathnames to all user accessible
devices. Some examples of common pathnames are:
scsi(0)disk(1)partition(1) dksc(0,1,1)
disk(1)part(1) same as above
scsi(0)cdrom(5)partition(7) dksc(0,5,7)
network(0)bootp()host:file bootp()host:file
serial(0) first serial port
keyboard() graphics keyboard
video() graphics display
On Origin systems, one more type of device-naming is supported. The ARCS
device naming scheme has been extended to allow the use of full hardware
graph names to specify devices not residing in the master module. Refer
to the hwgraph(4) manual page for more information about device naming.
For example, in the kernel, the path
/hw/module/1/slot/io1/baseio/pci/1/scsi_ctlr/0/
target/1/lun/0/disk/partition/0
Page 7
prom(1M) prom(1M)
refers to partition 0 of a disk in module 1, slot io1, controller 0 scsi
target id of 1, scsi lun 0.
The old device naming scheme:
devicename(controller,unit,partition)filename
has been retained, but cannot reference devices outside the master BASEIO
board. The master BASEIO board is the board that has the system console
connected to it. The old device naming scheme is not implemented for
non-disk devices like tty. For example:
tty(0), serial(0)
are not implemented in the Origin BASEIO prom.
ARCS defines environment variables that provide the same function as in
older PROMs, but with different names and values:
ConsoleIn/ConsoleOut
These two variables are set at system startup automatically
from the console variable. They are maintained for ARCS
compatibility only.
OSLoadPartition
The device partition where the core operating system is found.
For IRIX, this variable is used as the root partition when the
root variable is unused or not available and the device
configured in the system(4) file with the ROOTDEV directive is
not available. This variable is stored in nonvolatile RAM, but
is normally left unset, which allows the PROM to automatically
configure it at system power-on.
OSLoader The operating system loader. For IRIX, this is sash. This
variable is stored in nonvolatile RAM, but is normally left
unset, which allows the PROM to automatically configure it at
system power-on.
SystemPartition
The device where the operating system loader is found. This
variable is stored in nonvolatile RAM, but is normally left
unset, which allows the PROM to automatically configure it at
system power-on.
OSLoadFilename
The filename of the operating system kernel. For IRIX this is
/unix. This variable is stored in nonvolatile RAM, but is
normally left unset, which allows the PROM to automatically
configure it at system power-on.
Page 8
prom(1M) prom(1M)
OSLoadOptions
The contents of this variable are appended to the boot command
constructed when autobooting the system. This variable is
stored in nonvolatile RAM.
AutoLoad Controls if the system boots automatically on reset/power
cycle. Can be set to Yes or No. Previously this function was
controlled by setting bootmode to c or m. This variable is
stored in nonvolatile RAM.
To try and improve the looks and usability of the PROM, the ARCS PROM
uses a graphical interface when console=g. In all cases the keyboard can
be used instead of the mouse, and in most cases the familiar keystrokes
from previous PROMs work.
For example, the traditional five item menu consists of a list of buttons
containing one icon each. To make a selection, either click any mouse
button with the button, or press the corresponding 1 through 5 key.
The only major user interface changes are for Install Software and
Recover System (menu items 2 and 4). The interface allows interactive
selection of a device type and then selection among devices of that type.
This makes it easier than previous PROMS to install from local drives or
remote directories without hacks like notape and tapedevice.
The set of commands available from the command monitor is relatively
unchanged:
hinv By default hinv prints a formatted abbreviated list similar to
the old-style PROM. A -t option has been added to print the
ARCS configuration tree directly. A secondary option -p, valid
only with -t, prints the corresponding ARCS pathnames for
peripheral devices.
There has also been some changes/additions to the SGI-defined environment
variables:
diskless This controls if the system is run as a diskless system. Since
some of the other environment variables are changed for ARCS
compliance, diskless setup is slightly different. The
environment should be set as follows.
diskless=1
SystemPartition=bootp()host:/path
OSLoader=kernelname
keybd Normally this variable is left unset and the system
automatically configures the keyboard to use its native key
map. To override the default, keybd should be set to a three
to five character string. The following strings are
recognized, depending on the PROM revision: USA, DEU, FRA,
ITA, DNK, ESP, CHE-D, SWE, FIN, GBR, BEL, NOR, PRT, CHE-F or
Page 9
prom(1M) prom(1M)
US, DE, FR, IT, DK, ES, de_CH, SE, FI, GB, BE, NO, PT, fr_CH on
systems with the keyboard layout selector. On newer systems,
JP is also acceptable.
Alternatively you can select between swiss french and swiss
german by setting keybd to d or D for the german map. On
systems with PC keyboards, a string not matching one of the
above is passed to the X server and used as the name of the
keyboard map to load. This variable is stored in nonvolatile
RAM.
diagmode If set to v, power-on diagnostics are verbose. In addition,
more diagnostics are run. This is similar to bootmode=d,
however it does not affect the behavior of AutoLoad. This
variable is stored in nonvolatile RAM.
The ARCS standard specifies different error numbers than IRIX:
ESUCCESS 0
E2BIG 1
EACCES 2
EAGAIN 3
EBADF 4
EBUSY 5
EFAULT 6
EINVAL 7
EIO 8
EISDIR 9
EMFILE 10
EMLINK 11
ENAMETOOLONG 12
ENODEV 13
ENOENT 14
ENOEXEC 15
ENOMEM 16
ENOSPC 17
ENOTDIR 18
ENOTTY 19
ENXIO 20
EROFS 21
EADDRNOTAVAIL 31
ETIMEDOUT 32
ECONNABORTED 33
ENOCONNECT 34
Examples
To boot the disk formatter, fx(1M), from a local tape containing the
installation tools:
Page 10
prom(1M) prom(1M)
1. Get into the command monitor by choosing option 5 from the menu.
2. Determine the type of CPU board in your system with the hinv command.
The board type is listed as the letters IP followed by a number.
Also, look for the item that lists the tape drive to determine the
format of the device name. For instance, a SCSI tape addressed as
device 7 might be listed as SCSI tape: tpsc(0,7) in which case the
device is tpsc(0,7).
3. With the installation tools tape in the drive, boot fx as follows:
boot -f tpsc(0,7)fx.IP6
where tpsc(0,7) is the device name and IP6 is the CPU board type.
To change the system console from the graphics display to a terminal
connected to serial port #1:
1. Get into the command monitor by choosing option 5 from the menu.
2. Change the console variable to d as follows:
setenv console d
3. Reinitialize the PROM with the init command:
init
SEE ALSO
bootp(1M), fx(1M), inst(1M), nvram(1M), tftpd(1M).
Page 11