boot

bootstrap the operating system

Syntax:

boot [-Epv] [-b baud] [-i ioport]
     [-m addr,nbytes] [-R n]

Options:

-b baud
Direct any output to a serial port set to the specified baud rate. Unless -i ioport is also specified, COM1 will be used.
-E
Emulate floating point. Tell QNX there is no floating point unit available.
-i ioport
Direct any output to the serial port at the specified I/O address (0xioport). Unless -b baud is specified, the serial port will be set to 9600 baud.
-M addr,nbytes
Add memory to list for QNX; addr is the start address, nbytes is the number of bytes. Both must be 4k aligned.
-R n
Reserve the first megabyte plus n 64kb chunks of memory for RUNDOS.
-p
Pause before starting QNX. This is a debugging option of value only to check the names of boot modules printed by -v.
-v
Verbose. Print information, including names of boot modules.

Description:

The boot program performs initial operations for the operating system. This includes operations which must be performed in "real mode," which is the startup mode of the intel386 family of processors. Before boot transfers control to QNX, the machine must be running in 32-bit protected mode.

The boot program is used only within a boot image. If an operating system buildfile (see buildqnx) does not specify the boot program, buildqnx will automatically insert it (with no options). If it is explicitly specified, it must be the first entry in the buildfile.

The boot command uses the ISA-BIOS and some test code to detect some elements of the machine environment including bus-architecture (PCI, EISA, ISA, PS/2), processor (386,486,586...), numeric processor (287, 387,...), video-adapter (none, mono, cga, ega, vga,...), and memory size.

Occasionally, due to lack of foresight in the ISA-BIOS specification, The full memory size cannot be identified. For this reason, boot provides an option to "add" memory to the' system.

When boot has completed; it jumps to the entry point of the next program in the boot image. Conventionally, this is the process manager (Proc32). The process manager reclaims any memory used by boot.

Since boot is independent of the operating system, it is possible for other "boot" programs to be written for specialized hardware, possibly nullifying need of an ISA-bios.

Diagnostics

If boot cannot succeed it prints:

   BOOT ERROR:
   message
   --- cannot start operating system

where message can be one of:

no modules in image, check build file
The boot program was the only program in the boot image.
need 32-bit processor
Failed to detect a 32-bit CPU.
relocate, invalid BMCB
bmcb list invalid
The boot image is corrupt (Boot Module Control Block).
not enough memory
The system doesn't have enough memory to create startup tables.
run failed
catch-all; should never happen.

If -v is specified, boot prints:

   boot modules:
   list of subsequent modules in boot image
   starting QNX...

Just before jumping to the process manager.

Exit status:

The boot program does not exit in the normal sense. After the necessary setup has been performed it transfers control to the process manager (Proc) built into the boot image.

See also: