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 giv-
              en.  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 perform-
                   ing autoconf(4) procedures.

              -d   Causes the kernel to drop into ddb(4) at the earliest con-
                   vinient 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 com-
              mands, if any.

     machine [command]
              Issues machine-dependent commands.  These are defined 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 configuration as determined through
                        BIOS routines.  Otherwise the arguments would specify
                        the expressions to modify the memory configuration.
                        The expression would have a form of:

                              [+-]<size>@<address>

                        Meaning to add(+) or exempt(-) the specified by the
                        <size> amount of memory at the location specified by
                        the <address> argument.  Both size and base address
                        could be specified as octal, decimal, or hexadecimal
                        numbers, as accepted by the strtoul(3) routine.  Memo-
                        ry segments are not required to be adjacent to each
                        other, the only requirement is that there is real
                        physical memory under the range added.  For example:

                              machine mem +0x2000000@0x1000000

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

                              machine mem -0x100000@0xf00000

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

              regs      Prints contents of processor registers if compiled
                        with DEBUG.



     ls [directory]
              Prints contents of the specified directory in long format in-
              cluding: 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 include:

              addr     Address at which to load the kernel.
              debug    Debug flag if boot was compiled with DEBUG 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 human intervention
                       before booting the default 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 changing speed not
              for the active console, the baudrate 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 3.0                    September 1, 1997                             4
