startup-bios, startup-bios-32

Startup for PC-compatible systems with a BIOS (QNX Neutrino)

Syntax:

startup-bios [-ABb] [-D channel[.channel_opts]] 
    [-F [~]value]
    [-f [cpu_freq][,[cycles_freq][,timer_freq]]] 
    [-I irq] [-j addr] [-K channel[.channel_opts]] [-L]
    [-N hostname] [-P max_cpus] 
    [-R size[,align]] [-r addr,size[,flag]]
    [-S [~]section] [-s size] [-T] [-v[v]...] [-x]

startup-bios-32 [-ABb] [-D channel[.channel_opts]] 
    [-F [~]value]
    [-f [cpu_freq][,[cycles_freq][,timer_freq]]] 
    [-I irq] [-j addr] [-K channel[.channel_opts]] [-L]
    [-N hostname] [-P max_cpus] 
    [-R size[,align]] [-r addr,size[,flag]]
    [-S [~]section] [-s size] [-T] [-v[v]...] [-x]

Runs on:

Neutrino

Targets:

x86 with a PC-compatible BIOS

Options:

In addition to the generic startup-* and x86-specific options, startup-bios and startup-bios-32 support the following options:

-b
Don't reserve the bottom 4 KB of memory for virtual 8086 mode. This provides an extra 4 KB of memory for system use.
-I irq
Make irq the highest-priority hardware interrupt in the system. You can specify a number from 0 through 7 (the default is 3).

Note: This overrides the default -I option.

-L
Enable support for the Local APIC interrupts (X86_INTR_APIC_* definitions in <x86/intr.h>).
-s size
Copy the given amount of video card ROM into RAM, and set the x86 page tables to refer to the RAM copy rather than the ROM. The size is in bytes, unless followed by one of K (kilobytes), M (megabytes), or G (gigabytes). Specifying the -s option causes the following call:
x86_pcbios_shadow_rom( 0xc0000, size );
     

For more information, see The startup library in the Customizing Image Startup Programs chapter of Building Embedded Systems.

Debug channels

The debug channel specified with the -D and -K options can be:

8250[.port[^shift][.baud[.clock[.divisor]]]]
Use a generic 8250-compatible serial chip, with:
port
Specify the I/O port base address for the 8250, in hexadecimal. The default is 3f8.
shift
Specify the spacing between the I/O registers, in 2shift bytes. The default is 0.
baud
Specify the baud rate for the debug channel. The default is 57600.
clock
Specify the clock rate (in Hz) input to the chip. The default is 1843200.
divisor
Specify the divisor used on the clock rate by the chip. The default is 16.
console
Use the PC console.

You can skip options by leaving out the data associated with that part. For example, if you want to send the debugging output to an 8250 chip using 9600 baud, use:

-D 8250..9600

The default -D and -K settings are:

-D console
-K 8250.3f8^0.57600.1843200.16

Description:

The startup-bios and startup-bios-32 programs are responsible for probing PC hardware resources using the BIOS. They're similar, except that startup-bios uses 64-bit physical addresses, and startup-bios-32 uses 32-bit ones.

If you want to use Message Signaled Interrupts (MSI) or Extended MSI (MSI-X), use startup-apic instead of startup-bios in your build file. You must use startup-apic in conjunction with pci-bios-v2.

Examples:

Direct debug output to the console:

startup-bios -Nnode120 -vvvv -Dconsole

Direct debug output to the first serial port (making sure the baud rate was set to 115200 on the receiving side):

startup-bios -Nnode120 -vvvv -D8250..115200

Direct debug output to the serial port at 2f8:

startup-bios -Nnode120 -vvvv -D8250.2f8.115200

For more examples, see ${QNX_TARGET}/x86/build.

See also:

mkifs, procnto, procnto-smp, startup-*

ClockTime(), SYSPAGE_ENTRY() in the QNX Neutrino Library Reference

Customizing Image Startup Programs in Building Embedded Systems