Startup for Intel Advanced Programmable Interrupt Controller (APIC) systems (QNX Neutrino)
startup-apic [-ABb] [-D channel[.channel_opts]] [-F [~]value] [-f [cpu_freq][,[cycles_freq][,timer_freq]]] [-I flag] [-i ifs2_size[,flags][,paddr_src][,paddr_dst]] [-j addr] [-K channel[.channel_opts]] [-N hostname] [-P max_cpus] [-R size[,align[,name[,use_low_memory]]]] [-r addr,size[,flag]] [-S [~]section] [-s size] [-T] [-v[v]...] [-x] [-z[z]] startup-apic-32 [-ABb] [-D channel[.channel_opts]] [-F [~]value] [-f [cpu_freq][,[cycles_freq][,timer_freq]]] [-I flag] [-i ifs2_size[,flags][,paddr_src][,paddr_dst]] [-j addr] [-K channel[.channel_opts]] [-N hostname] [-P max_cpus] [-R size[,align[,name[,use_low_memory]]]] [-r addr,size[,flag]] [-S [~]section] [-s size] [-T] [-v[v]...] [-x] [-z[z]]
QNX Neutrino
x86, x86_64
In addition to the generic startup-* and x86-specific options, startup-apic and startup-apic-32 support the following options:
x86_pcbios_shadow_rom( 0xc0000, size );
For more information, see the Startup Library chapter of Building Embedded Systems.
Debug channels
The debug channel specified with the -D and -K options can be:
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
The startup-apic and startup-apic-32 programs are the startup for boards that support Intel Advanced Programmable Interrupt Controllers (APIC). They support Message Signaled Interrupts (MSI) and Extended MSI (MSI-X). They're similar, except that startup-apic uses 64-bit physical addresses, and startup-apic-32 uses 32-bit ones.
In order to prevent the sharing of the HPET0 interrupt with PCI devices, it's configured in legacy interrupt mode and so uses IRQ 2. This configuration also configures HPET1 in legacy interrupt mode on IRQ8, which eliminates the use of the RTC interrupts. The QNX Neutrino RTOS doesn't use RTC interrupts; if you need to use them, use the -z option to startup-apic or startup-apic-32 to revert to the 8254 as system clock. Other HPET timers (if the system supports them) aren't affected by the legacy interrupt routing of HPET0 and HPET1.
Direct debug output to the console:
startup-apic -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-apic -Nnode120 -vvvv -D8250..115200
Direct debug output to the serial port at 2f8:
startup-apic -Nnode120 -vvvv -D8250.2f8.115200