Some of the more useful commands that can be issued from OpenBoot's ok
prompt are described here. Refer to the book for a complete list of commands.
Help for various functional areas of the OpenBoot monitor can be obtained by
typing help. The help listing provides a number of other key words
which can then be used in the help command to provide further details.
Each workstation contains one or more NVRAM devices which contains unique
system ID information, as well as a set of user-configurable parameters. The
NVRAM parameters allow the user a certain level of flexibility in
configuring the system to act in a given manner under a specific set of
circumstances.
See eeprom(1M) for a description of the parameters and
information regarding setting the parameters from the OS level.
The following commands can be used at the OpenBoot monitor to
access the NVRAM parameters.
printenv
Used to list the NVRAM parameters, along with
their default values and current values.
setenv pn pv
Used to set or modify a parameter. The pn
represents the parameter name, and pv represents the parameter
value.
set-default pn
Used to set an individual parameter back to its default
value.
set-defaults
Used to reset all parameters to their default values.
(Note that 'set-defaults' only affects parameters that have assigned
default values.)
Newer OpenBoot monitors contain user interfaces that support the storage and
listing of keys for later use by client programs.
list-security-keys
Lists the names of keys currently stored on a
machine.
set-security-key keyname [ keydata
]
Stores key data keydata in a key named
keyname. Actual key data can be up to 32 bytes in length. The maximum
length of keyname is 64 bytes, which allows for the hex-formatted ASCII
used to present the key data. If keydata is not present, keyname
and its corresponding data is deleted.
The following commands are available for testing or checking the system's
hardware. If the 'diag-switch?' NVRAM parameter is set to true
when the system is powered on, then a Power-On Self Test (POST) diagnostic is
run, if present, sending its results messages to the system's serial port A.
Not all of the commands shown are available on all workstations.
test-all
Run the diagnostic tests on each device which has
provided a self-test.
test floppy
Run diagnostics on the system's floppy device.
test /memory
Run the main memory tests. If the NVRAM parameter
'diag-switch?' is set to true, then all of main memory is tested. If
the parameter is false then only the amount of memory specified in the
'selftest-#megs' NVRAM parameter is tested.
test net
Test the network connection for the on-board network
controller.
watch-net
Monitor the network attached to the on-board net
controller.
watch-net-all
Monitor the network attached to the on-board net
controller, as well as the network controllers installed in SBus slots.
watch-clock
Test the system's clock function.
The following commands are available for displaying information about the
system. Not all commands are available on all workstations.
banner
Display the power-on banner.
.enet-addr
Display the system's Ethernet address.
.idprom
Display the formatted contents of the
IDPROM.
module-info
Display information about the system's
processor(s).
probe-scsi
Identify the devices attached to the on-board SCSI
controller.
probe-scsi-all
Identify the devices attached to the on-board SCSI
controller as well as those devices which are attached to SBus SCSI
controllers.
show-disks
Display a list of the device paths for installed
SCSI disk controllers.
show-displays
Display a list of the device paths for installed display
devices.
show-nets
Display a list of the device paths for installed Ethernet
controllers.
show-sbus
Display list of installed SBus devices.
show-tapes
Display a list of the device paths for installed
SCSI tape controllers.
show-ttys
Display a list of the device paths for tty devices.
.traps
Display a list of the SPARC trap types.
.version
Display the version and date of the OpenBoot PROM.
These commands must be typed from the keyboard, they do not work from a console
which is attached by way of the serial ports. With the exception of the
Stop-A command, these commands are issued by pressing and holding down
the indicated keys on the keyboard immediately after the system has been
powered on. The keys must be held down until the monitor has checked their
status. The Stop-A command can be issued at any time after the console
display begins, and the keys do not need to be held down once they've been
pressed. The Stop-D, Stop-F and Stop-N commands are not
allowed when one of the security modes has been set. Not all commands are
available on all workstations.
Stop (L1)
Bypass the Power-On Self Test (POST). This is only
effective if the system has been placed into the diagnostic mode.
Stop-A (L1-A)
Abort the current operation and return to the monitor's
default prompt.
Stop-D (L1-D)
Set the system's 'diag-switch?' NVRAM
parameter to 'true', which places the system in diagnostic mode. POST
diagnostics, if present, are run, and the messages are displayed by way of the
system's serial port A.
Stop-F (L1-F)
Enter the OpenBoot monitor before the monitor has probed
the system for devices. Issue the 'fexit' command to continue with
system initialization.
Stop-N (L1-N)
Causes the NVRAM parameters to be reset to their
default values. Note that not all parameters have default values.
The following commands can be used while the monitor is displaying the ok
prompt. Not all of these editing commands are available on all workstations.
CTRL-A
Place the cursor at the start of line.
CTRL-B
Move the cursor backward one character.
ESC-B
Move the cursor backward one word.
CTRL-D
Erase the character that the cursor is currently
highlighting.
ESC-D
Erase the portion of word from the cursor's present
position to the end of the word.
CTRL-E
Place the cursor at the end of line.
CTRL-F
Move the cursor forward one character.
ESC-F
Move the cursor forward one word.
CTRL-H
Erase the character preceding the cursor (also use Delete
or Back Space)
ESC-H
Erase the portion of the word which precedes the cursor
(use also CTRL-W)
CTRL-K
Erase from the cursor's present position to the end of
the line.
CTRL-L
Show the command history list.
CTRL-N
Recall the next command from the command history
list
CTRL-P
Recall a previous command from the command history
list.
CTRL-Q
Quote the next character (used to type a control
character).
CTRL-R
Retype the current line.
CTRL-U
Erase from the cursor's present position to the beginning
of the line.
CTRL-Y
Insert the contents of the memory buffer into the line,
in front (to the left) of the cursor.
The nvramrc is an area of the system's NVRAM where users may store
Forth programs. The programs which are stored in the nvramrc are
executed each time the system is reset, provided that the
'use-nvramrc?' NVRAM parameter has been set to 'true'.
Refer to the book for information on how to edit and use the nvramrc.
The command 'old-mode' is used to move OpenBoot into a restricted monitor
mode, causing the > prompt to be displayed. Only three commands are
allowed while in the restricted monitor; the 'go' command (to resume a
program which was interrupted with the Stop-A command), the 'n'
command (to return to the normal OpenBoot monitor), and boot commands. The
restricted monitor's boot commands approximate the older SunMON
monitor's boot command syntax. If a 'security-mode' has been turned on
then the restricted monitor becomes the default monitor environment. The
restricted monitor may also become the default environment if the
'sunmon-compat?' NVRAM parameter is set to true. Not all
workstations have the 'sunmon-compat?' parameter.
The following commands are available systems with older SunMON-based
PROM:
+|−
Increment or decrement the current address and display
the contents of the new location.
^C source destination n
(caret-C) Copy, byte-by-byte, a block of length n
from the source address to the destination address.
^I program
(caret-I) Display the compilation date and location of
program.
^T virtual_address
(caret-T) Display the physical address to which
virtual_address is mapped.
b [ ! ] [ device [
(c,u,p) ] ] [
pathname ] [ arguments_list ]
b[?]
Reset appropriate parts of the system and bootstrap a
program. A `
!' (preceding the
device argument) prevents the
system reset from occurring. Programs can be loaded from various devices (such
as a disk, tape, or Ethernet). `
b' with no arguments causes a default
boot, either from a disk, or from an Ethernet controller. `
b?' displays
all boot devices and their
devices.
device
one of
le
Lance Ethernet
ie
Intel Ethernet
sd
SCSI disk, CDROM
st
SCSI 1/4" or 1/2" tape
fd
Diskette
id
IPI disk
mt
Tape Master 9-track 1/2" tape
xd
Xylogics 7053 disk
xt
Xylogics 1/2" tape
xy
Xylogics 440/450 disk
c
A controller number (0 if only one
controller),
u
A unit number (0 if only one driver), and
p
A partition.
pathname
A pathname for a program such as
/stand/diag.
arguments_list
A list of up to seven arguments to pass to the program
being booted.
c [virtual_address]
Resume execution of a program. When given,
virtual_address is the address at which execution resumes. The default
is the current PC. Registers are restored to the values shown by the
d, and r commands.
d [window_number]
Display (dump) the state of the processor. The processor
state is observable only after:
- o
- An unexpected trap was encountered.
- o
- A user program dropped into the monitor (by calling abortent).
- o
- The user manually entered the monitor by typing L1−A or
BREAK.
The display consists of the following:
- o
- The special registers: PSR, PC, nPC, TBR, WIM,
and Y
- o
- 24 window registers (8 in, 8 local, and 8 out),
corresponding to one of the 7 available windows. If a Floating-Point Unit
is on board, its status register along with 32 floating-point registers
are also shown.
window_number
Display the indicated window_number, which can be
any value between 0 and 6, inclusive. If no window is specified
and the PSR's current window pointer contains a valid window number,
registers from the window that was active just prior to entry into the monitor
are displayed. Otherwise, registers from window 0 are displayed.
e [virtual_address][action] ...
Open the 16-bit word at virtual_address (default
zero). The address is interpreted in the address space defined by the s
command. See the a command for a description of action.
f virtual_address1 virtual_address2 pattern
[size]
Fill the bytes, words, or long words from
virtual_address1 (lower) to
virtual_address2 (higher) with the
constant,
pattern. The
size argument can take one of the
following values:
b
byte format (the default)
w
word format
l
long word format
For example, the following command fills the address block from
0x1000 to 0x2000 with the word pattern, 0xABCD:
f 1000 2000 ABCD W
g [vector] [argument]
g [virtual_address] [argument]
Goto (jump to) a predetermined or default routine (first
form), or to a user-specified routine (second form). The value of
argument is passed to the routine. If the
vector or
virtual_address argument is omitted, the value in the
PC is used
as the address to jump to.
To set up a predetermined routine to jump to, a user program must,
prior to executing the monitor's g command, set the variable
*romp->v_vector_cmd to be equal to the virtual address of the
desired routine. Predetermined routines need not necessarily return control
to the monitor.
The default routine, defined by the monitor, prints the
user-supplied vector according to the format supplied in
argument. This format can be one of:
%x
hexadecimal
%d
decimal
g0
Force a panic and produce a crash dump when the monitor
is running as a result of the system being interrupted,
g4
(Sun-4 systems only) Force a kernel stack trace when the
monitor is running as a result of the system being interrupted,
h
Display the help menu for monitor commands and their
descriptions. To return to the monitor's basic command level, press
ESCAPE or q before pressing RETURN.
i [cache_data_offset] [action]...
Modify cache data RAM command. Display and/or
modify one or more of the cache data addresses. See the a command for a
description of action.
j [cache_tag_offset] [action]...
Modify cache tag RAM command. Display and/or
modify the contents of one or more of the cache tag addresses. See the
a command for a description of action.
k [reset_level]
Reset the system, where
reset_level is:
0
Reset VMEbus, interrupt registers, video monitor
(Sun-4 systems). This is the default.
1
Software reset.
2
Power-on reset. Resets and clears the memory. Runs the
EPROM-based diagnostic self test, which can take several minutes,
depending upon how much memory is being tested.
kb
Display the system banner.
l [virtual_address][action]...
Open the long word (32 bit) at memory address
virtual_address (default zero). The address is interpreted in the
address space defined by the s command (below). See the a
command for a description of action.
m [virtual_address][action]...
Open the segment map entry that maps
virtual_address (default zero). The address is interpreted in the
address space defined by the s command. See the a command for a
description of action.
ne
ni
Disable, enable, or invalidate the cache,
respectively.
o [virtual_address][action]...
Open the byte location specified by
virtual_address (default zero). The address is interpreted in the
address space defined by the s command. See the a command for a
description of action.
p [virtual_address][action]...
Open the page map entry that maps virtual_address
(default zero) in the address space defined by the s command. See the
a command for a description of action.
q [eeprom_offset][action]...
Open the EEPROM eeprom_offset (default
zero) in the EEPROM address space. All addresses are referenced from
the beginning or base of the EEPROM in physical address space, and a
limit check is performed to insure that no address beyond the EEPROM
physical space is accessed. This command is used to display or modify
configuration parameters, such as: the amount of memory to test during self
test, whether to display a standard or custom banner, if a serial port (A or
B) is to be the system console, etc. See the a command for a
description of action.
r [register_number]
r [register_type]
r [w window_number]
Display and/or modify one or more of the
IU or
FPU registers. A hexadecimal
register_number can be one of:
0x00−0x0f
window(0,i0)−window(0,i7),
window(0,i0)—window(0,i7)
0x16−0x1f
window(1,i0)−window(1,i7),
window(1,i0)—window(1,i7)
0x20−0x2f
window(2,i0)−window(2,i7),
window(2,i0)—window(2,i7)
0x30−0x3f
window(3,i0)−window(3,i7),
window(3,i0)—window(3,i7)
0x40−0x4f
window(4,i0)−window(4,i7),
window(4,i0)—window(4,i7)
0x50−0x5f
window(5,i0)−window(5,i7),
window(5,i0)—window(5,i7)
0x60−0x6f
window(6,i0)−window(6,i7),
window(6,i0)—window(6,i7)
0x70−0x77
g0, g1, g2, g3, g4, g5, g6, g7
0x78−0x7d
PSR, PC, nPC, WIM,
TBR, Y.
0x7e−0x9e
FSR, f0−f31
Register numbers can only be displayed after an unexpected trap, a
user program has entered the monitor using the abortent function, or
the user has entered the monitor by manually typing L1−A or
BREAK.
If a register_type is given, the first register of the
indicated type is displayed. register_type can be one of:
f
floating-point
g
global
s
special
If w and a window_number (0—6)
are given, the first in-register within the indicated window is
displayed. If window_number is omitted, the window that was active
just prior to entering the monitor is used. If the PSR's current
window pointer is invalid, window 0 is used.
s [asi])
Set or display the Address Space Identifier. With no
argument,
s displays the current Address Space Identifier. The
asi value can be one of:
0x2
control space
0x3
segment table
0x4
Page table
0x8
user instruction
0x9
supervisor instruction
0xa
user data
0xb
supervisor data
0xc
flush segment
0xd
flush page
0xe
flush context
0xf
cache data
u [ echo ]
u [ port ] [ options ] [
baud_rate ]
u [ u ] [ virtual_address ]
With no arguments, display the current I/O device
characteristics including: current input device, current output device, baud
rates for serial ports A and B, an input-to-output echo indicator, and virtual
addresses of mapped
UART devices. With arguments, set or configure the
current I/O device. With the
u argument (
uu...), set the I/O
device to be the
virtual_address of a
UART device currently
mapped.
echo
Can be either e to enable input to be echoed to the output device, or
ne, to indicate that input is not echoed.
port
Assign the indicated
port to be the current I/O
device.
port can be one of:
a
serial port A
b
serial port B
k
the workstation keyboard
s
the workstation screen
baud_rate
Any legal baud rate.
options
can be any combination of:
i
input
o
output
u
UART
e
echo input to output
ne
do not echo input
r
reset indicated serial port (a and b ports
only)
If either a or b is supplied, and no options
are given, the serial port is assigned for both input and output. If
k is supplied with no options, it is assigned for input only. If
s is supplied with no options, it is assigned for output only.
v virtual_address1 virtual_address2
[size]
Display the contents of
virtual_address1 (lower)
virtual_address2 (higher) in the format specified by
size:
b
byte format (the default)
w
word format
l
long word format
Enter return to pause for viewing; enter another return character
to resume the display. To terminate the display at any time, press the space
bar.
For example, the following command displays the contents of
virtual address space from address 0x1000 to 0x2000 in word
format:
v 1000 2000 W
w [virtual_address][argument]
Set the execution vector to a predetermined or default
routine. Pass
virtual_address and
argument to that routine.
To set up a predetermined routine to jump to, a user program must,
prior to executing the monitor's w command, set the variable
*romp->v_vector_cmd to be equal to the virtual address of the
desired routine. Predetermined routines need not necessarily return control
to the monitor.
The default routine, defined by the monitor, prints the
user-supplied vector according to the format supplied in
argument. This format can be one of:
%x
hexadecimal
%d
decimal
x
Display a menu of extended tests. These diagnostics
permit additional testing of such things as the I/O port connectors, video
memory, workstation memory and keyboard, and boot device paths.
yc context_number
yp|s context_number virtual_address
Flush the indicated context, context page, or context
segment.
c
flush context context_number
p
flush the page beginning at virtual_address within
context context_number
s
flush the segment beginning at virtual_address
within context context_number