Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ boot(1M) — Motorola System V 88k Release 4 Version 4.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

scsifmt(1M)

init(1M)

kdb(1M)

dse(1M)

shutdown(1M)

buildsys(1M)

mkboot(1M)

inittab(4)

vfstab(4)

boot(1M)  —  ADMINISTRATOR COMMANDS

NAME

boot − bootstrap procedures

DESCRIPTION

Bootstrapping is the process of loading and executing a standalone program.  The term bootstrapping is used to describe the process of loading and executing the bootable operating system, but any standalone program can be booted instead.  The diagnostic monitor for a machine is a good example of a standalone program other than the operating system that can be booted. 

The bootstrap procedure on most machines consists of the following basic phases. 

First, the machine is either turned on, or brought down to firmware mode in any of a number of ways (hardware reset button, a shutdown or init command, and so on).  On powerup, the boot process is generally begun automatically: a small firmware program is loaded and executed, and the process moves into the second phase. 

From firmware mode, however, the boot process is not automatic and the user can request the running of a firmware command, a standalone program (such as the bootable operating system), or the reconfiguration of the operating system. 

Assume that an operating system boot is requested from firmware.  The firmware boot code loads and executes a disk (or other storage media) based boot program. 

Next, the boot program loads and executes the bootable operating system.  It is at this point that the UNIX system is started, necessary file systems are mounted [see vfstab(4)], and init is run to bring the system to the initdefault state specified in /etc/inittab [see inittab(4)]. 

For the Motorola reference platform, the disk-based boot program is called boot and the tape-based boot program is called tapeboot.  These programs are taken from the boot slice on disk or the first file on tape, and loaded and executed at boot time.  Copies of these programs exist in the directory /usr/lib, for the purpose of copying to another hard disk using the dinit command or to another tape using the igf command. 

The default bootable operating system file is /stand/unix for disks and COREunix for tapes.  The /stand slice is defined in the disk’s VTOC table. 

BOOT COMMANDS AND OPTIONS

For more information about what commands and options the boot supports, issue a boot command from the BUG but specify a file name of ;help.  This help message will produce output which looks something like that shown below. 

188-Bug>bo 6 0;help
Booting from: VME328, Controller 6, Drive 0
Loading: ;help
 Volume: $00000000
 IPL loaded at: $0F00000
  SVR4 Boot Loader 921013
Boot commands: "bo x y ;command"
 make-kernel     force a new unix to be built
show-values     display default options values
show-log        display the boot log
set             set default value;set keyword=hex
                (keyword is debug or probe)
help            obtain these helpful messages
ls              list the files in the V_STAND slice
l               an alias for ls
?               an alias for help
 Boot options: "bo x y file;option[;option] ..."
 lockon          force MP locking on
lockoff         force MP locking off
root-slice      specify root FS slice; keyword=hex
boot-slice      specify V_STAND slice; keyword=hex
noprobe         do not run the device probes
one-cpu         use only the boot mpu
kdb             stop in kernel debugger on boot (if possible)
diag            diagnostic control; keyword=string
probe           specify the probe output; keyword=hex
debug           specify the boot debugging; keyword=hex
halt            return to the BUG after loading kernel
h               an alias for halt
 188-Bug>

The show-values command is used to disply the default setting values for the debug and probe options. 

The show-log command is used to display the boot block log. 

The set command is used to establish default values of the debug and probe options.  These values are automatically used by the boot block when no debug or probe option is specified on the command line. 

The make-kernel command is used to force the system through the auto-configuration process.  It is useful when you change a configurable parameter, forget to touch /stand/system, and shut the system down. 

The help command lists the help message shown above. 

The ls and l commands are used to view the contents of the V_STAND slice to determine what kernels are available. 

The lockon option specifies that multiprocessor locking is to be forced on regardless of the number of CPUs on the platform. 

The lockoff option specifies that multiprocessor locking is to be forced off regardless of the number of CPUs on the platform.  No additional CPUs beyond the boot processor may be started if locking is off.  If lockon and lockoff are specified together, lockon overrides lockoff. 

The root-slice option specifies the slice on the boot device which is to be used as the root filesystem (this command is used only in special configurations).  Slices are designated using a single hexadecimal digit [0-9a-fA-F]. 

The boot-slice option is used to select from the available V_STAND slices on a disk to locate the probes and the kernel (this command is used only in special configurations).  Slices are designated using a single hexadecimal digit [0-9a-fA-F]. 

The noprobe option is used to avoid the time spent probing for new devices and subsequently checking whether the system needs to be reconfigured.  No reconfiguration will occur if noprobe is specified even if one is needed. 

On multiprocessor systems, one of the CPUs is used to initialize the majority of the system and then the remainder of the CPUs are started.  Using the one-cpu option inhibits the starting of the remainder of the CPUs in the system.  This option is useful for eliminating multiprocessor affects on the system (e.g., during driver debugging). 

The kdb option causes the system to halt in the kernel debugger after the system has been initialized but before any additional CPUs are started and before the devices are initialized.  If the kernel debugger is not installed, this option has no effect.  See the kdb(1M) manpage for further details about the kernel debugger. 

The diag option is used to specify the diagnostic control that the kernel is to run with.  The string is past to the kernel for interpretation. 

The probe option controls how much output is sent to the console terminal by the probe routines.  The hex value must be between 0 and 7 inclusive and consists of three bits in which 0 indicates off and 1 indicates on.  Bit 0 controls the diagnostics for successful probe operations.  Bit 1 controls the diagnostics for failed probe operations.  Bit 2 controls the diagnostics for probe operations which are skipped (e.g., the ignore option in the EDT data file causes the entry to be skipped). 

The debug option controls how much output is sent to the console terminal by the bootstrap.  The hex value specifies bits which 0 indicates off and 1 indicates on.  Bit 0 controls the diagnostic messages that identify the location and size of program sections loaded from the kernel and probe files.  Bit 1 controls the diagnostic messages that specifically identify the configuration changes that are causing an autoconfiguration.  Bit 2 controls the diagnostic messages which clearly identify the beginning and ending of the major operation that occur within the boot block.  Bit 3 controls the diagnostic messages that print a brief summary of the contents of the edt_data file and contents of the EDT that will be return by the boot block to the kernel. 

The halt and h options return to the ROM debugger after the image is loaded (this option requires intimate knowledge of how the image operates and should be used carefully).  See the note below when using this option. 

LOCKING OUT CONFIGURATION CHANGES

Anytime a change is detected in the systems hardware configuration, the boot block will automatically cause a reconfiguration to occur.  This action can be disabled by created the file /stand/.configlock.  The boot block will then report that a configuration change as been detected but no autoconfiguration will occur. 

DIAGNOSTICS

The following table describes the diagnostics which may be seen when the system is booted. 

block 0 area has been corrupted
The sanity information contained in the volume ID is corrupted.

No log area configured
The dinit utility has not be used to reserve a portion of the are for logging purposes. 

equal sign is missing
The option being executed requires an equal sign to separate the keyword from the value and no equal sign was found.

<keyword> needs hex value
The option being executed requires a hexadecimal value.

invalid hex value
The option being executed requires a valid hexadecimal value.

set needs space before keyword=hex
The set command needs space between the set command and the keyword.

set needs an argument, keyword=hex
The set command requires a keyword and hex value to set default value.

unknown option <option>
An unknown option was specified.

<keyword> value cannot be saved
Only the debug and probe values can be saved with the set command.

root-slice value must be < 16
The root-slice value must be less than 16.

boot-slice value must be < 16
The boot-slice value must be less than 16.

debug value must be <= F
The debug value must be between 0 and F inclusive.

probe value must be <= 7
The probe value must be between 0 and 7 inclusive.

file name too long
Due to limitations of the BFS file system, all files have names containing less than 14 characters. The file specified contains more than 14 characters.

command cannot be used with options
A boot command may only be used by itself (e.g. not mixed with options).

command cannot be used with other commands
Only one command can be issued at a time.

the lockon and lockoff options are mutually exclusive
Both options were attempted at the same time.

Invalid slice number <slice number>
The slice number specified by the root-slice or boot-slice option is not a valid slice. 

No V_ROOT tagged slice on device
No slice could be found on the disk that has a tag which indicates that it is the root file system.

root slice has zero size!
The slice tagged as the root file system has a size of zero blocks.

root slice has zero starting block!
The slice tagged as the root file system starts at block zero of the disk which is invalid.

V_SWAP slice has zero starting block
The slice tagged as the swap slice starts at block zero of the disk which is invalid.

Unable to open file <name>
The file name specified doesn’t exist or can’t be opened.

file <filename> is empty!
The specified file is empty.

file <filename>: bad magic
The file specified is not a COFF or ELF executable and thus can not be loaded.

unix is unbootable.
You may wish to attempt to build a new unix by entering the following
command:
bo <controller number> <device number> ;make-kernel

The file /stand/unix is missing. 

non-optimal CPU support detected
The kernel contains support for CPUs which are unnecessary for system.

configuration change detected
The configuration of the machine has changed due to hardware or system tuning. The kernel will be reconfigured.

reconfiguring kernel
The kernel will be reconfigured.

reconfiguration aborted due to configuration lock
The autoconfiguration system determined that a kernel reconfiguration should be performed but the administrator has create a configuration lock file which will prevent any changes from occurring.

Invalid log area
The signature retrieved from the log area is not valid.

No log area has been reserved
Log area hasn’t been reserved by dinit.

show-log is unavailable on this device
Either the media is readonly or the log area was not reserved by dinit.

No V_STAND tagged slice on device
No slice could be found on the disk that has a tag which indicates that it is the stand file system.

V_STAND slice has zero size!
The slice tagged as the stand file system has a size of zero blocks.

V_STAND slice has zero starting block!
The slice tagged as the stand file system starts at block zero of the disk which is invalid.

CPU (cpu id) unknown to boot
The BUG returned a signature for the booted CPU which is unknown to the boot block.

Problem with edt_data: no probing possible
The edt_data is missing or contains a syntax error.

system file more recent than unix
The file /stand/system has been modified more recently than the kernel being booted and thus a reconfiguration of the kernel is required.

edt_data file more recent than unix
The file /stand/edt_data has been modified more recently than the kernel being booted and thus a reconfiguration of the kernel is required.

slice <slice> isn’t tagged V_STAND
An attempt was made to boot from a slice which isn’t tagged as a V_STAND file system.

noprobe and probe may not be used together
The commands noprobe and probe may not be used together. 

must not specify a file name
A command or option was specified which does not take a file name but a file name was given.

must specify a file name
A command which requires a file was executed without any file specified.

Name = <kernel_name>, start address = <start_address>
This diagnostic message shows which object is booted and what the address in the object where execution will begin.

Using In-core EDT built by probe programs
This diagnostic message is issued when the information gathered by the probes is used (as opposed to the EDT information in the kernel itself).

Program load point <addr> is too near the boot loader
The program, when loaded, would cause the boot loader to be overwritten.

No probe programs!: using builtin devices
No probe programs were found so the previously configuration information will be used by the kernel.

unable to run this kernel on this CPU
The kernel is not configured to run on the CPU it was booted on.

kernel configuration information missing
One or more the compiled in configuration sections of the kernel file were missing from the kernel.

inappropriate kernel CPU support
The kernel if either configured for a different CPU than the one it was booted on or it has support for more CPUs than are necessary. The kernel should be reconfigured.

read error: blk = <bld number> cnt = <count>
A read I/O errored when attempting to read the specified block number.

write error: blk = <bld number> cnt = <count>
A write I/O errored when attempting to write the specified block number.

I/O error on VID (block 0)
An I/O error occurred when the boot block attempted to read in the devices volume ID (VID).

invalid VID (block 0)
The volume ID does not contain a valid signature.

I/O error on VTOC (block vtoc-block)
An I/O error occurred when the boot block attempted to read in the table of contents (VTOC) does not contain a valid signature.

Invalid VTOC (block vtoc-block)
The volume table of contents (VTOC) does not contain a valid signature.

I/O write error on VID (block 0)
An I/O error occurred when writing the volume ID (VID - block 0).

NOTES

The boot program is not smart enough to differentiate between a bootable kernel or stand-alone program and a UNIX executable.  Booting a stand-alone program will result in unpredictable results. 

When booting an m88k UNIX kernel using the ;halt option, register 9 must be manually set to the value of 0xF00D before directly jumping to the start address of the kernel by using the GO command with an address parameter.  Register 9 will be correctly set if the user just continues from the BUG by using the GO command without an address parameter. 

SEE ALSO

scsifmt(1M), init(1M), kdb(1M), dse(1M) shutdown(1M), buildsys(1M), mkboot(1M), inittab(4), vfstab(4). 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026