PROM(1prom) RISC/os Reference Manual PROM(1prom)
NAME
prom - general features of the PROM monitor
DESCRIPTION
NOTE: In the following description, some PROM features are
noted as applicable only on RC6380 computers with a PROM
monitor.
The PROM monitor provides the tools for examining and chang-
ing PROM memory; downloading programs over serial lines
(RS-232C); and booting programs from disk, tape, or Ether-
net. The PROM monitor also provides tools for altering con-
figuration power-up options in NVRAM (nonvolatile RAM),
displaying hardware registers, and controlling PROM environ-
ments.
On RC6380 computers, the PROM monitor resides in PROM on the
IOC board and is entered when the system is reset or the
system is powered up. The PROM monitor initializes the CPU,
IOC, and memories. On other computers, the PROM monitor
resides in PROM on the CPU board and initializes the CPU and
memories (IOC does not exist).
The processor is initialized by initializing the system
coprocessor Status and Cause registers, and by flushing the
translation buffer.
The memory cards are initialized by probing to determine how
many cards exist, determining the best memory interleave
configuration, configuring the boards for refresh slot
assignment, and assigning base addresses.
The CPU board is initialized by sizing and flushing the
instruction and data caches, inspecting the contents of
NVRAM and reinitializing it if necessary, and initializing
environment variables from NVRAM.
MEMORY USAGE
The PROM monitor uses system memory between physical
addresses 0x500 and 0x10000 (0x500 and 0x1ffff on RC6380
computers). The include file prom/entrypt.h describes con-
ventions for memory use by standalone programs.
FILE NAME SYNTAX
When the PROM monitor requires a file name, the components
for the different devices should be listed in the following
order:
1. disk devices: device(controller, unit,
partition)path
2. SCSI tape: scsi_tape_device(controller, unit,
Printed 11/19/92 Page 1
PROM(1prom) RISC/os Reference Manual PROM(1prom)
file)path
3. Ethernet devices:
boot_protocol(controller,
Ethernet)path
Each component is defined as follows:
controller
Because a system can have more than one device
controller of a particular type installed, the
controller field indicates the specific con-
troller. The system defines control register
addresses for multiple controllers for the system.
If you do not specify a controller number, the
default value of 0 is used.
device The device field associates the file name with a
particular type of hardware.
Ethernet Ethernet is the name of a UDDP/IP device (defaults
to egl).
file File is the file number on the SCSI tape.
partition Disk devices are frequently broken down into logi-
cal subunits, called partitions. The partition
field selects a disk partition within a unit. The
partition's base cylinder and size are determined
by accessing the disk volume header stored on the
disk itself. If you do not specify the partition
field, the default value of 0 is used. For tape
drives, the partition number specifies the file
number on the tape. Numbering starts at 0; 0 is
the first file on the tape, 1 specifies the second
file on the tape, and so on.
path The path field indicates a particular file on the
media specified by the device, controller, unit,
and partition fields. The file referred to by path
is located by consulting a directory on the device
itself. The PROM monitor does not include code
that locates files. However, the sash does have
code to locate files from disk volume headers,
tape directories, and disk directories. If you
want to use this option, then boot sash first
using the boot command. If you do not specify a
path, then the file name is assumed to refer to
the raw device.
unit Because you can attach multiple storage devices to
Page 2 Printed 11/19/92
PROM(1prom) RISC/os Reference Manual PROM(1prom)
a single device controller, the unit number field
indicates the specific device. If you do not
specify a unit number, then the default value of 0
is used. If you are using the tqij device, then
the default value is 6.
ENVIRONMENT VARIABLES
The PROM monitor maintains environment variables that are
passed to booted programs. These variables function like
EP/IX system shell environment variables. Some of the
environment variables affect the operation of the PROM moni-
tor and are maintained in NVRAM. This means that when you
reset the machine or power it down, the monitor still main-
tains these variables.
bootdev Specifies the device from which a boot operation
was last performed. This variable is not saved in
NVRAM but is set and passed on as one of the
environmental variables inherited by the invoked
program after a boot operation. For example, after
the following boot command the variable bootdev
is set to bfs:
boot -f bfs()sash_std
bootfile Specifies the default program that boots when you
do not specify the -f option to the boot command.
bootmode Controls the PROM monitor's action in response to
system resets. bootmode values are as follows:
Bootmode Description
m The PROM monitor enters command mode
after reset.
c The PROM monitor does a cold boot. A
cold boot loads the file specified by
the environment variable bootfile and
passes it the argument -a. Typically,
the bootfile is the standalone shell
(sash). The standalone shell interprets
the -a flag as a request to load the
operating system as specified in the
volume header of the device from which
sash itself loaded.
w Attempts a warm boot on reset. A warm
boot transfers control to an memory
image loaded before you reset the sys-
tem. The PROM monitor determines if such
an image is present by looking for a
Printed 11/19/92 Page 3
PROM(1prom) RISC/os Reference Manual PROM(1prom)
properly formatted restart block. If a
restart block is not found or is
incorrectly formatted, or a warm boot
has already been attempted with the res-
tart block, then a cold boot is per-
formed.
d facilitates system debugging by preserv-
ing the contents of memory across
resets. It also skips the running of
system diagnostics and initialization of
memory on power up. Thus, if the system
is powered up with a bootmode value of
d, the monitor command init should be
issued before booting of system pro-
grams.
e On system power up, except when bootmode
has a value of d, a set of diagnostic
tests is run and the result reported on
the enabled consoles. If some of the
tests faile, bootmode is changed to e.
bootmode e skips the running of diagnos-
tics on further power ups or resets.
console Selects which console devices are considered con-
soles on power up and after resets. You can enable
and disable consoles by command after reset (see
enable(1)). When set to l (the letter L), only
tty(0) is initially enabled as a console; if con-
sole is r, then both tty(0) and tty(1) are enabled
as consoles.
cupid Reserved for future use.
flag When non-zero, this variable suppresses the print-
ing of the header for the PROMs and standalone
programs (such as sash).
ioaparameter
When non-zero, the I/O subsystem is not initial-
ized by the PROM. This is a maintenance troub-
leshooting tool. Do not attempt to use it unless
you are experienced and familiar with its possible
effect on computer operations.
lbaud Specifies the baud rate for tty(0), which is uart
A on the CPU board and typically the local con-
sole. You can set the baud rate to 75, 110, 134,
150, 300, 600, 1200, 1800, 2400, 4800, 9600, or
19200. If you specify an illegal baud rate, 9600
baud is used.
Page 4 Printed 11/19/92
PROM(1prom) RISC/os Reference Manual PROM(1prom)
magic If this parameter is not equal to RISCPROM, the
vendor and model parameters are set to their
default values on the next reset.
model This parameter, an ASCII string of up to 16 char-
acters, forms part of the PROM monitor invocation
string. The default value is the MIPS model as
determined by the PROM monitor.
netaddr Specifies the Internet address for the node. This
is used by the bootfile service software in the
standalone I/O (saio) library.
rbaud Specifies the baud rate for tty(1), which is uart
B on the CPU board and typically the remote con-
sole. You can set the baud rate to 75, 110, 134,
150, 300, 600, 1200, 1800, 2400, 4800, 9600, or
19200. If you specify an illegal baud rate, 9600
baud is used.
rootname Specifies the device in which the root partition
of the UNIX kernel resides. The default value of
0 implies that the kernel uses default rules to
determine the root device. This variable can be
overridden by the root= option in the boot com-
mand. For example, the following command specifies
that the root device is on partition 0 of disk 0
on the Jaguar controller 0:
rootname = ijc0d0s0
vendor This parameter, an ASCII string of up to 16 char-
acters, forms part of the PROM monitor invocation
string. The default value is MIPS.
version Indicates the version of the installed PROMs, and
is used by the kernel to determine which PROMs are
installed in the machine. This environment vari-
able cannot be changed.
INPUT EDITING
The following basic editing commands are available for the
PROM Monitor:
Control-H or DEL
Erases the previous character.
Control-U Erases the entire line.
Control-C Aborts the program that is currently running
and returns control to the PROM monitor.
Printed 11/19/92 Page 5
PROM(1prom) RISC/os Reference Manual PROM(1prom)
Control-Z Causes the current program to execute a
breakpoint instruction. This command is used
in conjunction with the standalone program
dbgmon.
Control-D Causes the standalone program to exit nor-
mally.
USING BREAKS TO CHANGE BAUD RATE
You can also cycle the baud rate for tty(0) and tty(1) among
the baud rates 110, 300, 1200, 2400, 4800, 9600, and 19200
baud by entering a BREAK. Baud rate changes made by BREAK's
are temporary until the next reset or until a new program is
loaded. To change the baud rate permanently, change either
the lbaud or rbaud environment variable.
EXTENDING THE PROM MONITOR
If you give the PROM monitor a command that is not built-in,
then the monitor uses the first word of the command as the
name of a file and tries to boot that file passing any other
arguments on the command line onto the booted program. If
the environment variable $path is undefined, then the first
word of the command must be a complete file name specifica-
tion consisting of a device name, controller, unit, parti-
tion fields as necessary, and a file path. If the environ-
ment variable $path is defined, the PROM monitor tries to
boot the program file formed by prepending the contents of
$path to the command. If $path is a list of prefixes
separated by spaces, then the PROM monitor tries each prefix
from $path in turn until the file boots successfully or all
prefixes have been tried.
SEE ALSO
enable(1), sash(1spp)
Page 6 Printed 11/19/92