PROM(1prom) UMIPS-V Reference Manual PROM(1prom)
NAME
prom - general features of the prom monitor
DESCRIPTION
This man page describes the PROM Monitor. The PROM Monitor
provides the tools for examining and changing PROM memory,
downloading programs over serial lines (RS-232C), and
booting programs from disk, tape or Ethernet. The PROM
Monitor also provides tools for altering configuration
power-up options in non-volatile RAM
The PROM Monitor resides in PROM on the CPU board and is
entered when the system is reset or the system is powered
up. The PROM Monitor initializes the processor, the memory
boards, and the CPU board.
The processor is initialized by initializing the system
coprocessor Status and Cause registers, and 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, by inspecting the contents of
non-volatile memory and reinitializing it if necessary, and
by initializing environment variables from non-volatile
memory.
MEMORY USAGE
The PROM Monitor uses system memory between physical address
0x500 and 0x10000. The include file "prom/entrypt.h"
describes conventions for memory use by standalone programs.
FILE NAME SYNTAX
When the PROM Monitor requires a filename, the components
should be listed for the different devices in the order
shown below.
disk devices: device(controller, unit,
partition)path
SCSI tape: scsi_tape_device(controller,
unit, file)path
ethernet devices: boot_protocol(controller,
ethernet)path
controller Since a system can have more that one device
Page 1 (printed 3/13/90)
PROM(1prom) UMIPS-V Reference Manual PROM(1prom)
controller of a particular type installed,
the controller field indicates the specific
controller. 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.
(cmc or egl are the only devices correctly
supported.)
file File is the file number on the SCSI tape.
partition Disk devices are frequently broken down into
logical sub-units, called partitions. The
partition field selects a disk partition
within a unit. The partition's base cylinder
and size is 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
zero; zero is the first file on the tape; 1
specifies the second file on the tape, and so
on.
path The path 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 located 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 a single device controller, the
unit number indicates the specific device.
If you do not specify a unit num ber, then
the default value of 0 is used. If you are
using the tqij device, then the default value
is 6.
Page 2 (printed 3/13/90)
PROM(1prom) UMIPS-V Reference Manual PROM(1prom)
ENVIRONMENT VARIABLES
The PROM Monitor maintains "environment variables" that are
passed to booted programs. These variables function like
UNIX system shell environment variables. Some of the
environment variables affect the operation of the PROM
Monitor and are maintained in non-volatile memory. This
means that when you reset the machine or power it down, the
Monitor still maintains these variables.
lbaud Specifies the baud rate for tty(0), which is
uart A on the CPU board and typically the
local console. 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.
rbaud Specifies the baud rate for tty(1), which is
uart B on the CPU board and typically the
remote console. 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.
netaddr Specifies the internet address for the node.
This is used by the bootfile service software
in the standalone I/O (saio) library.
console This variable selects which console devices
are to be considered consoles 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 console is 'r', then both tty(0)
and tty(1) are enabled as consoles.
RS2030 console variables
The console variables and the devices that
they enable are given below:
'0' enables tty(0)
'1' enables tty(1)
'g' enables graf(0)
't' enables tty(0) and tty(1)
'a' enables everything possible
'l' if a graphics board is in the
Page 3 (printed 3/13/90)
PROM(1prom) UMIPS-V Reference Manual PROM(1prom)
system, then 'l' enables
graf(0); otherwise it will
enable tty(0), the logical
console.
'r' if a graphics board is in the
system, 'r' enables graf(0)
and tty(0).
bootfile Specifies the default program that boots when
you don't specify the -f option to the boot
command.
bootmode Controls the PROM Monitor's action in
response to system resets. The bootmodes are
given below(?).
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
system. The PROM Monitor determines if
such an image is present by looking for
a properly formatted "restart block",
see restart(5spp). If a restart block
is not found, a restart block is
incorrectly formatted, or a warm boot
has already been attempted with the
restart block, then a cold boot is
performed.
d the PROM Monitor operates like command
mode ('m') except that the Monitor
attempts to preserve the contents of
memory across resets.
Page 4 (printed 3/13/90)
PROM(1prom) UMIPS-V Reference Manual PROM(1prom)
cpuid Reserved for future use. Currently this
variable must be set to zero.
resetepc This variable indicates the program counter
the machine was executing when the machine
was reset.
resetra This variable indicates the contents of the
Return Address register when the machine was
reset.
memparity Setting this variable to one (1) enables
parity, and setting this variable to zero (0)
disables parity. This variable should be
used in conjunction with the kernel argument
"mem_parity" to enable and disable parity
when running UNIX. (Not supported on M/2030).
version This variable indicates the version of the
installed PROMs, and it is used by the kernel
to determine which PROMs are installed in the
machine. This environment variable cannot be
changed.
flag When non-zero, this variable suppresses the
printing of the MIPS header for the PROMs and
standalone programs (such as sash).
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.
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
normally.
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 rates changes made by
Page 5 (printed 3/13/90)
PROM(1prom) UMIPS-V Reference Manual PROM(1prom)
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
specification consisting of a device name, controller, unit,
partition fields as necessary, and a file path. If the
environment 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
sash(1Mspp).
intro(1spp), dbgmon(1spp) in the System Programmer's
Package.
Page 6 (printed 3/13/90)