Qi is a replacement for the uBoot bootloader reduced to the core bootloader functions.
Its advantages comparing to u-boot are:
GTA02 Hardware is recommended over GTA01, since GTA02 does have a fallback u-boot in nor that provides DFU-Mode. Qi does NOT provide DFU-Mode so GTA01-Users will have no (easy) way to flash their device!
Qi assumes the rootfs to be on the same partition as the kernel. See below for help with an extra /boot-partition. The default rootdelay is 1 second.
A short press on the power-button is enough to make Qi start booting.
If a user presses the AUX button after successful partition mount and before start of the kernel pull (that is, while the red LED is on), this boot possibility is skipped (and GTA02 owners can feel vibration).
Qi's concept is to leave everything possible to Linux, that includes even the video init. Therefore Qi does NOT provide a boot menu. This should rather be implemented by a minimal Kernel, initramfs and menu system. It may be more comfortable for some users and may get them to switch from uboot to Qi. This does not exist yet (it's already implemented for some Angstrom-supported devices and for Zaurus, so porting should be relatively easy).
The daily download is a qi-s3cXXXX-andy_somenumber.udfu file at http://people.openmoko.org/andy/ . Use the file appropriate to your device:
The installation should be flashing like (do it in DFU mode of NOR u-boot):
# dfu-util -a u-boot -R -D qi-s3c6410-andy_8589b40295653557.udfu
git://git.openmoko.org/git/qi.git , http://git.openmoko.org/?p=qi.git;a=summary . One can also just use strings(1) on the .udfu file to get an idea of where Qi currently looks for files.
The latest README file can be found in the git as well:http://git.openmoko.org/?p=qi.git;a=blob;f=README;hb=HEAD
[1] If it's SD Card boot, just create a text file, e.g., for a GTA02 use
/boot/append-GTA02
on the rootfs in question, put in there
loglevel=8
and you'll see the messages on boot. If it's NAND right now you need to edit the default commandline in Qi for gta02.
If you have a Partition for /boot, you will need to add a argument for the kernel to know which partition is the rootfs. Add this in /boot/append-GTA0[123]:
root=/dev/mmcblk0p2
for a rootfs on the second partition.
If you don't specify loglevel=8 in append-GTAXX, and booting fails with a "VFS: Cannot open root device "mmcblk0p1" or unknown-block(2,0)", the SD card needs a little bit more time to initialise.
Put a "rootdelay=5" in append-GTAXX like so:
rootdelay=5
Stopwatch results on Qi (error is approx ±1/2 second):
Booting SHR image with uBoot:
Booting identical setup with Qi flashed over uBoot:
So for this particular configuration, it reduced time-to-desktop by about 28%, about 44 seconds. Surprisingly, the later segments of booting (desktop) were also noticeably faster than with uBoot - One would have expected just the fist stages up until init (kernel finished establishing itself) to be faster.