Manual page for MONITOR(8S)
monitor - system ROM monitor
SYNOPSIS
L1-A
BREAK
DESCRIPTION
The
CPU
board of the Sun workstation contains an
EPROM
(or set of
EPROMs),
called the
monitor,
that controls the system during startup.
The monitor tests
the system before attempting to boot
the operating system.
If you interrupt the boot procedure by holding down
L1
while typing
a
or
A
on the workstation keyboard (or
BREAK
if the console is a dumb terminal), the monitor issues the prompt:
>
and accepts commands interactively.
On a
Desktop SPARCsystem or a SPARCsystem 600MP,
the message
Type b (boot), c (continue), or n (new command mode)
will be displayed prior to the monitor prompt
`>'.
USAGE
Modes
The monitor supports three security modes (non-secure, command secure, and
fully secure) and an authentication password.
Access to monitor commands is controlled by these security modes.
In
non-secure
mode all monitor commands are allowed.
In
command secure
mode, only the
b(boot)
command with no arguments and the
c(continue)
command with no arguments may be entered without supplying the authentication
password.
In
fully secure
mode, only the
c(continue)
command with no arguments may be entered without supplying the authentication
password.
Note:
The system will not auto-reboot in fully secure mode.
The authentication password must be entered before booting will take place.
Commands
Note: the following commands are available on all Sun systems
except
Desktop SPARCsystems and SPARCsystem 600MP series;
only the
b,
c,
and
n
commands listed below are available on those systems.
- +|-
-
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.
- a
[n] [action]... (Sun-3 systems only)
-
Open
A-register
(cpu address register)
n,
and perform indicated actions. The number
n
can be any value from
0
to
7,
inclusive. The default value
is
0.
A hexadecimal
action
argument assigns the value you supply to the register
n.
A non-hex
action
terminates command input.
- b
[
device
[
(c,u,p)
] ] [
pathname
] [
arguments_list
] (SPARCstation 1 systems only)
-
See
openboot.8s
for details.
- b
[
device-specifier
] [
pathname
] [
arguments-list
] (SPARCstation 2 systems, SPARCsystem 600MP series only)
-
See
openboot.8s
for details.
- b
[
!
] [
device
[
(c,u,p)
] ] [
pathname
] [
arguments_list
]
-
- b[?]
-
Reset appropriate parts of the system and bootstrap
a program.
Note:
the
`b!'
and
`b?'
commands are not available on
Desktop SPARCsystems and SPARCsystem 600MP series,
see
openboot.8s
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 will cause a default boot, either from a
disk, or from an Ethernet controller.
`b?'
displays all boot devices and their
device
arguments, where
device
is one of:
-
-
- le
-
Lance Ethernet
- ie
-
Intel Ethernet (Sun-3, Sun-4 systems only)
- sd
-
SCSI
disk, CDROM
- st
-
SCSI
1/4" or 1/2" tape
- fd
-
Diskette (Sun386i, Sun-3/80 systems, Desktop SPARCsystems only)
- id
-
IPI disk (Sun-4 systems, SPARCsystem 600MP series only)
- mt
-
Tape Master 9-track 1/2" tape (Sun-3, Sun-4 systems only)
- xd
-
Xylogics 7053 disk (Sun-3, Sun-4 systems only)
- xt
-
Xylogics 1/2" tape (Sun-3, Sun-4 systems only)
- xy
-
Xylogics 440/450 disk (Sun-3, Sun-4 systems only)
-
- 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.
/vmunix
is the default.
- arguments_list
-
A list of up to seven arguments to pass to the program being booted.
- c (Desktop SPARCsystems, SPARCsystem 600MP series only);
-
- c
[virtual_address]
(Sun-3, Sun-4 and Sun386i systems only)
-
Resume execution of a program.
Desktop SPARCsystems and SPARCsystem 600MP series
do not accept a virtual address;
the current
PC
is assumed.
See the
Open PROM Toolkit User's Guide
or
Open PROM 2.0 Toolkit User's Guide
for details on changing this value.
When given,
virtual_address
is the address at which execution will resume.
The default is the current
PC
(EIP on Sun386i systems).
Registers are restored to the values shown by the
a,
d,
and
r
commands (for Sun-3 systems), or by the
d
and
r
commands (for Sun-4 systems), or by the
d
command (for Sun386i systems).
- d
[window_number] (Sun-4 systems only)
-
Display (dump) the state of the processor.
The processor state is observable only after:
-
-
- An unexpected trap was encountered.
- A user program dropped into the monitor (by calling
abortent).
- The user manually entered the monitor by typing
L1-A
or
BREAK.
The display consists of the following:
-
-
- The special registers:
PSR,
PC,
nPC,
TBR,
WIM,
and Y
- Eight global registers, and
- 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
its 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.
- d (Sun386i systems only)
-
Display (dump) the state of the processor.
This display consists of the registers, listed below:
-
-
- Processor Registers:
-
EAX, ECX, EDX, ESI, EDI, ESP, EBP, EFLAGS, EIP
- Segment Registers:
-
ES, CS, SS, DS, FS, GS
- Memory Management Registers:
-
GDTR, LDTR, IDTR, TR
- Control Registers:
-
CR0, CR2, CR3
- Debug Registers:
-
DR0, DR1 , DR2 , DR3, DR6, DR7
- Test Registers:
-
TR6, TR7
The processor's state is observable only after an
unexpected trap, a user program has
``dropped'' into the monitor (by calling monitor function
abortent)
or the user has manually ``broken ''
into the monitor (by typing
L1-A
on the Workstation console, or
BREAK
on the dumb terminal's keyboard.
- d
[n][action]... (Sun-3 systems only)
-
Open
D-register
(cpu data register)
n,
and perform indicated actions.
The number
n
can be any value from
0
to
7,
inclusive.
The default is
0.
See the
a
command for a description of
action.
- e
[virtual_address][action] ...
-
Open the 16-bit word at
virtual_address
(default zero). On Sun-3, and Sun-4 systems, 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] (Sun-3 and Sun-4 systems only)
-
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 (Sun-3, and Sun-4 only)
-
When the monitor is running as a result of
the system being interrupted, force a panic and produce a crash dump.
- g4
-
When the monitor is running as a result of
the system
being interrupted, force a kernel stack trace.
- h (Sun-3 and Sun-4 and Sun386i systems)
-
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]... (Sun-3/200 series and Sun-4 systems only)
-
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]... (Sun-3/200 series and Sun-4 systems only)
-
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. If
reset_level
is:
-
-
- 0
-
CPU
reset only (Sun-3 systems). Reset
VMEbus,
interrupt registers, video monitor (Sun-4 systems).
This is the default. Reset video (Sun386i systems).
- 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). On Sun-3 and Sun-4 systems, 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). On Sun-3 and Sun-4 systems, the address is
interpreted in the address space defined by the
s
command. Not supported on Sun386i.
See the
a
command for a description of
action.
- n (Desktop SPARCsystems, SPARCsystem 600MP series only)
-
Enter the new command mode. Type
`old-mode'
to return to the old command mode.
See the
Open PROM Toolkit User's Guide
for a complete list of commands available on a
SPARCstation 1 systems; See the
Open Boot PROM 2.0 Toolkit User's Guide
for a complete list of commands available on
SPARCstation 2 and SPARCsystem 600MP series.
- nd (Sun386i systems only)
-
- ne
-
- ni
-
Disable, enable, or invalidate the cache, respectively.
- o
[virtual_address][action]...
-
Open the byte location specified by
virtual_address
(default zero). On Sun-3 and Sun-4 systems, 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.
- p [port_address] [[nonhex_char [hex_value] | hex_value] ...] (Sun386i systems only)
-
Display or modify the contents of one or more port I/O addresses in
byte mode. Each port address is treated as an 8-bit unit. The optional
port_address
argument, which is a 16-bit quantity, specifies the initial port I/O address.
See the
e
command for argument descriptions.
- q
[eeprom_offset][action]... (Sun-3 and Sun-4 systems only)
-
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.
On Sun386i systems, open the
NVRAM
nvram_offset
(default zero).
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 [reg_name] [[nonhex_char [hex_value] | hex_value] ...] (Sun386i systems only)
-
Display or modify one or more of the processor registers.
If
reg_name
is specified (2 or 3 characters from the above list), that
register is displayed first. The default is
EAX.
See note on register availability under the command
d
(for Sun386i systems).
See the
e
command for argument descriptions.
- s [step_count] (Sun386i systems only)
-
Single step the execution of the interrupted program. The
step_count
argument specifies the number of single steps to execute
before displaying the monitor prompt. The default is 1.
- r
[register_number][action]... (Sun-3 systems only)
-
Display and/or modify the register indicated.
register_number
can be one of:
-
-
- CA
-
68020 Cache Address Register
- CC
-
68020 Cache Control Register
- CX
-
68020 System and User Context
- DF
-
Destination Function code
- IS
-
68020 Interrupt Stack Pointer
- MS
-
68020 Master Stack Pointer
- PC
-
Program Counter
- SC
-
68010 System Context
- SF
-
Source Function code
- SR
-
Status Register
- SS
-
68010 Supervisor Stack Pointer
- UC
-
68010 User Context
- US
-
User Stack Pointer
- VB
-
Vector Base
Alterations to these registers (except
SC
and
UC)
do not take effect until the next
c
command is executed.
See the
a
command for a description of
action.
- r
[register_number] (Sun-4 systems only)
-
- 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
[code] (Sun-3 systems only)
-
Set or query the address space to be used by subsequent
memory access commands.
code
is one of:
-
-
- 0
-
undefined
- 1
-
user data space
- 2
-
user program space
- 3
-
user control space
- 4
-
undefined
- 5
-
supervisor data space
- 6
-
supervisor program space
- 7
-
supervisor control space
If
code
is omitted,
s
displays the current address space.
- s
[asi] (Sun-4 systems only)
-
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
- t
[program] (Sun-3 systems only)
-
Trace the indicated standalone
program.
Works only with programs that do not affect interrupt vectors.
- 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 (except on Sun386i systems)
- 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] (Sun-3 and Sun-4 systems only)
-
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] (Sun-3 and Sun-4 systems only)
-
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 (Sun-3 and Sun-4 systems only)
-
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 (Sun-4 systems only)
-
- 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
- z [number] [breakpoint_virtual_address [type] [len]] (Sun386i systems only)
-
Set or reset breakpoints for debugging.
With no arguments, this command displays the existing breakpoints.
The
number
argument is a values from 0 to 3, corresponding to the processor debug
registers,
DR0
to
DR3,
respectively. Up to 4 distinct breakpoints can be specified.
If
number
is not specified then the monitor chooses a breakpoint number.
The
breakpoint_virtual_address
argument specifies the breakpoint address.
The
type
argument can be one of:
-
-
- x
-
Instruction Execution breakpoint (the default)
- m
-
for Data Write only breakpoint
- r
-
Data Reads and Writes only breakpoint.
The
len
argument can be one of:
`b',
`w',
or
`l',
corresponding to the breakpoint field length of byte, word,
or
long-word, respectively. The default is
`b'.
Since the breakpoints are set in the on-chip registers, an instruction
breakpoint can be placed in
ROM
code or in code shared by several tasks.
If the
number
argument is specified but not
breakpoint_virtual_address,
the corresponding breakpoint is reset.
- z
[virtual_address] (Sun-3 systems only)
-
Set a breakpoint at
virtual_address
in the address space selected by the
s
command.
FILES
- /vmunix
-
SEE ALSO
boot.8s
eeprom.8s
openboot.8s
Open PROM Toolkit User's Guide
Open PROM 2.0 Toolkit User's Guide
Created by unroff & hp-tools.
© somebody (See intro for details). All Rights Reserved.
Last modified 11/5/97