Startup for Unified Extensible Firmware Interface systems (QNX Neutrino)
startup-uefi [-ABbCTx] [-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] [-p str] [-R size[,align[,name[,use_low_memory]]]] [-r addr,size[,flag]] [-S [~]section] [-s size] [-v[v]...] [-z[z]] startup-uefi-32 [-ABbCTx] [-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] [-p str] [-R size[,align[,name[,use_low_memory]]]] [-r addr,size[,flag]] [-S [~]section] [-s size] [-v[v]...] [-z[z]]
QNX Neutrino
x86 and x86_64 targets that support UEFI
In addition to the generic startup-* and x86-specific options, startup-uefi and startup-uefi-32 support the following options:
Debug channels
The debug channel specified with the -D and -K options can be:
The common arguments for the 8250, 8250_mmio, and 8250_pci channel definitions are as follows:
Argument | Description | Default (8250) | Default (MMIO, PCI) |
---|---|---|---|
shift | The spacing between the I/O registers, in 2shift bytes | 0 | 2 |
baud | The baud rate for the debug channel | 57600 | 115200 |
clock | The clock rate (in Hz) input to the chip | 1843200 | 1843200 |
divisor | The divisor used on the clock rate by the chip | 16 | 16 |
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-uefi and startup-uefi-32 programs are the startup for boards that support Unified Extensible Firmware Interface (UEFI). They're similar, except that startup-uefi uses 64-bit physical addresses, and startup-uefi-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-uefi or startup-uefi-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-uefi -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-uefi -Nnode120 -vvvv -D8250..115200
Direct debug output to the serial port at 0x2f8:
startup-uefi -Nnode120 -vvvv -D8250.2f8.115200