[Previous] [Contents] [Next]

boot

Bootstrap the operating system

Syntax:

boot [-AEIOPV] [-dfptv] [-b baud] [-i ioport] [-g n]
     [-M addr,nbytes] [-R n]

Options:

-A
Don't probe BIOS for APM (Advanced Power Management).
-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.
-d
Don't reprogram the serial controller -- use it as is.
-E
Emulate floating point. Tell QNX there's no floating-point unit available.
-f
Don't turn off floppy motor.
-g n
Adjust A20 gate as follows:
-1
Don't adjust -- just ensure it's enabled.
1
Try "fast" gate before "slow" gate.
0
Autodetect (the default).
-I
Don't enable interrupts when probing the machine.
-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.
-O
For old-style BIOSes. Disable APM and PnP (Plug'n'Play) memory probe.
-P
Disable PCI interface (int 0x1a).
-p
Pause before starting QNX. This is a debugging option of value only to check the names of boot modules printed by -v.
-R n
Reserve the first megabyte plus n 64K chunks of memory.
-t
Continue even if A20 gate fails.
-v
Verbose. Print information, including names of boot modules.
-V
Disable video.

Note: The following options are really intended to help you get around buggy BIOSes or hardware:
-A
Don't probe BIOS for APM.
-d
Don't reprogram the serial controller -- use it as is.
-E
Emulate floating point.
-f
Don't turn off floppy motor.
-g n
Adjust A20 gate.
-I
Don't enable interrupts when probing the machine.
-O
For old-style BIOSes. Disable APM and PnP probe.
-P
Disable PCI interface (int 0x1a).
-t
Continue even if A20 gate fails.
-V
Disable video.

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 Intel 386 family of processors. Before boot transfers control to QNX, the machine must be running in 32-bit protected mode.


Note: 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.

Due to lack of foresight in the ISA-BIOS specification, the full memory size sometimes can't 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.


Note: If your target machine doesn't have a BIOS, you can use the boot-nobios utility. Its syntax and options are the same as boot's.

Diagnostics:

If boot can't 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 the following just before jumping to the process manager:

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

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:

buildqnx, Proc


[Previous] [Contents] [Next]