BOOT(8)             OpenBSD System Manager's Manual (i386)             BOOT(8)

NAME
     boot, boot.conf - i386-specific second-stage bootstrap

DESCRIPTION
     The main purpose of this program is to load the system kernel while deal-
     ing with the downfalls of the PC BIOS architecture.

     As described in boot_i386(8), this program is loaded by the biosboot(8)
     primary bootstrap loader and provides a convenient way to load the ker-
     nel.  This program acts as an enhanced boot monitor for PC systems, pro-
     viding common interface for the kernel to start from.

     Basic operations include:

     o   Detecting and switching between multiple consoles.
     o   Loading kernels from any device supported by your system BIOS.
     o   Loading kernels compressed by gzip(1).
     o   Passing system parameters queried from the BIOS to the kernel.
     o   Providing an interactive command line.

     The sequence of its operation is as follows: initialization, parsing the
     configuration file, then an interactive command line.  While at the com-
     mand line you have 5 seconds to type any commands, if needed.  If time
     expires, the kernel will be loaded according to the current variable set-
     tings (see the set command).  Each time a kernel load fails, the timeout
     is increased by one second.  The sequence of boot operations is as fol-
     lows:

     1.   Set up a protected mode environment which catches and reports pro-
          cessor exceptions and provides a simple protected-mode BIOS inter-
          face.

     2.   Probe for console devices, which includes the (default) PC VGA+Key-
          board console (pc0) and up to four serial consoles (com0 through
          com3) connected to the serial ports.  Display messages to the de-
          fault console about the devices found.

     3.   Detect memory.  Conventional memory is detected by querying the
          BIOS.  Extended memory is detected by probing page-by-page through
          the address space, rather than asking the BIOS; many BIOS's cannot
          report larger than 64M of memory.  All memory found is reported to
          the default console device.

     4.   Probe for APM support in the BIOS.  Display a message if support is
          present.

     5.   If the file /etc/boot.conf exists on the filesystem boot was loaded
          from, open and parse it.  This file may contain any commands boot
          accepts at the interactive prompt.  Though default settings usually
          suffice, they can be changed here.

     6.   The header line

                >> OpenBSD/i386 BOOT [x.xx]

          is displayed to the active console, where x.xx is the version number
          of the boot program, followed by the

                boot>

          prompt, which means you are in the interactive mode and may enter
          commands.  If you do not, boot will proceed to loading the kernel
          with the current parameters after the timeout period has expired.

COMMANDS
     The following commands are accepted at the boot prompt:

     boot [image [-acds]]    Boots the kernel image specified by image with
                             any options given.  Image specification consists
                             of a pair device: filename, either or both can be
                             omitted (':' is not needed if both are omitted),
                             in which case values from boot variables will be
                             used.

                             -a   Causes the kernel to ask for the root device
                                  to use.

                             -c   Causes the kernel to go into boot_config(8)
                                  before performing autoconf(4) procedures.

                             -d   Causes the kernel to drop into ddb(4) at the
                                  earliest convinient point.

                             -s   Causes the kernel to boot single-user.

     echo [args]             Displays args on the console device.

     help                    Prints a list of available commands and machine
                             dependent commands, if any.

     machine [command]       Issues machine-dependent commands.  These are de-
                             fined for i386 architecture:

                             diskinfo   Prints a list of hard disks installed
                                        on your system including: BIOS device
                                        number, and the BIOS geometry.

                             memory     If used without any arguments this
                                        command will print out the memory con-
                                        figuration as determined through BIOS
                                        routines.  Otherwise the arguments
                                        would specify the expressions to modi-
                                        fy the memory configuration.  The ex-
                                        pression would have a form of:

                                              [+-]<size>@<address>

                                        Meaning to add(+) or exempt(-) the
                                        specified by the <size> amount of mem-
                                        ory at the location specified by the
                                        <address> argument.  Both size and
                                        base address could be specified as oc-
                                        tal, decimal, or hexadecimal numbers,
                                        as accepted by the strtoul(3) routine.
                                        Memory segments are not required to be
                                        adjacent to each other, the only re-
                                        quirement is that there is real physi-
                                        cal memory under the range added.  For
                                        example:

                                              machine mem +0x2000000@0x1000000

                                        would add 32M of memory right after
                                        the first 16M.  The other useful com-
                                        mand would be to withdraw a range of
                                        memory from OS usage (might be wrong-
                                        fully reported as useful by the BIOS).

                                              machine mem -0x100000@0xf00000

                                        which effectively excludes 15-16M
                                        range from the map of usefull memory.

                             regs       Prints contents of processor registers
                                        if compiled with DEBUG.

     ls [directory]          Prints contents of the specified directory in
                             long format including: attributes and file type,
                             owner, group, size, filename.

     reboot                  Reboots the machine by initiating a warm boot
                             procedure.

     set [varname [value]]   If invoked without arguments, prints a list of
                             variables and their values.  If only varname is
                             specified, displays contents of that variable.
                             If varname and value are both specified, sets
                             that variable to the given value.  Variables in-
                             clude:

                             addr     Address at which to load the kernel.
                             debug    Debug flag if boot was compiled with DE-
                                      BUG defined.
                             device   Boot device name (i.e., fd0a, sd0a).
                             howto    Options to pass to the loaded kernel.
                             image    File name containing the kernel image.
                             timeout  Number of seconds boot will wait for hu-
                                      man intervention before booting the de-
                                      fault kernel image.
                             tty      Active console device name (i.e., com0,
                                      com1, pc0).

     stty [device [speed]]   Displays or sets the speed for a console device.
                             If changing the baudrate for the currently active
                             console, boot offers you five seconds of grace
                             time before committing the change to allow you to
                             change your terminal's speed to match.  If chang-
                             ing speed not for the active console, the bau-
                             drate is set for the next time you switch to a
                             serial console.  The baudrate value is not used
                             for the pc0 console.

                             The default baudrate is 9600bps.

     time                    Displays system time and date.

EXAMPLES
     boot> boot

     Boot the default kernel.

     # echo "boot" > /etc/boot.conf

     Remove the 5 second pause at boot-time permanently, causing boot to load
     the kernel immediately without prompting.

     boot> set tty com0

     Use serial console.  A null modem cable should connect the specified se-
     rial port to a terminal.  Useful for debugging.

     # echo "set tty com0" > /etc/boot.conf

     Invoke the serial console at every boot.

     boot> boot wd1a:/bsd -c

     Boot the kernel named /bsd from the second IDE disk in ``User Kernel
     Configuration'' mode (see config(8)). This mechanism allows for the ex-
     plicit enabling and disabling of devices during the current boot se-
     quence, as well as the modification of device parameters.  Once booted,
     such changes can be made permanent by using config(8)'s -e option.

FILES
     /usr/mdec/biosboot    first stage bootstrap
     /boot                 system bootstrap
     /etc/boot.conf        system bootstrap's startup file
     /bsd                  kernel image

SEE ALSO
     gzip(1), autoconf(4), ddb(4), boot_config(8), boot_i386(8), fdisk(8),
     installboot(8), reboot(8)

     RFC 1950 describes the zlib library interface.

     The official home page for the version of zlib used in this operating
     system see http://quest.jpl.nasa.gov/zlib/.

HISTORY
     This program was written by Michael Shalayeff for OpenBSD 2.1.

OpenBSD 2.9                    September 1, 1997                             4
