threewater, a Chinese developer, has just posted a very interesting demo on linux-sunxi mailing list showing a device based on AllWinner A10 boot linux within 0.85s, and if you add a Qt app, the total time is just about 1.2s.

This appears to be a custom hardware (EM6000), but we do know it’s based on AllWinner A10, comes with 512 MB RAM, and 4GB NAND Flash. On the software side, the device runs kernel 3.4 from linux-sunxi, with a customized version of uboot, a squashfs rootfs, and a Qt 4.7.4 app showing a gauge. Both the rootfs (7MB) and the kernel (2MB) have been compressed with LZO. All that boots from NAND flash for optimal speed.

The 1.2 second time includes kernel + rootfs + app time, and the total time is a bit longer, but this is still impressive. Here’s the boot log:

[1.690000 1.690000] U-Boot SPL 2013.01-05984-g2120a27-dirty (Apr 17 2013 - 14:22:02) [0.009000 0.009000] Board: EM6000 [0.012000 0.003000] DRAM: 512MB [1.014000 1.002000] init startup v1.1 [1.016000 0.002000] mount usr data error 2 [1.158000 0.142000] Could not read calibration: "/data/etc/pointercal" [1.166000 0.008000] Couldnt open tslib config file: No such file or directory [1.175000 0.009000] QWSTslibMouseHandlerPrivate: ts_config() failed with error: 'No such file or directory' [1.187000 0.012000] Please check your tslib installation! [1.200000 0.013000] qt show 1 2 3 4 5 6 7 8 9 10 [ 1.690000 1.690000 ] U - Boot SPL 2013.01 - 05984 - g2120a27 - dirty ( Apr 17 2013 - 14 : 22 : 02 ) [ 0.009000 0.009000 ] Board : EM6000 [ 0.012000 0.003000 ] DRAM : 512MB [ 1.014000 1.002000 ] init startup v1 . 1 [ 1.016000 0.002000 ] mount usr data error 2 [ 1.158000 0.142000 ] Could not read calibration : "/data/etc/pointercal" [ 1.166000 0.008000 ] Couldnt open tslib config file : No such file or directory [ 1.175000 0.009000 ] QWSTslibMouseHandlerPrivate : ts_config ( ) failed with error : 'No such file or directory' [ 1.187000 0.012000 ] Please check your tslib installation ! [ 1.200000 0.013000 ] qt show

If you just boot to the command line, it’s even faster:

[1.770000 1.770000] U-Boot SPL 2013.01-g8a69ff9-dirty (Apr 22 2013 - 13:05:36) [0.007000 0.007000] Board: EM6000 [0.009000 0.002000] DRAM: 512MB [0.810000 0.801000] /etc/init.d/rcS: line 6: /data/run.sh: not found [0.835000 0.025000] [0.843000 0.008000] login[42]: root login on 'ttyS0' [0.851000 0.008000] [root@(none) /root]# 1 2 3 4 5 6 7 [ 1.770000 1.770000 ] U - Boot SPL 2013.01 - g8a69ff9 - dirty ( Apr 22 2013 - 13 : 05 : 36 ) [ 0.007000 0.007000 ] Board : EM6000 [ 0.009000 0.002000 ] DRAM : 512MB [ 0.810000 0.801000 ] / etc / init .d / rcS : line 6 : / data / run .sh : not found [ 0.835000 0.025000 ] [ 0.843000 0.008000 ] login [ 42 ] : root login on 'ttyS0' [ 0.851000 0.008000 ] [ root @ ( none ) / root ] #

This is not the first time, people have implemented ultra fast boot on ARM hardware, an example is a ~400ms boot on the Beagleboard, but it’s still nice to see what can be achieved thanks to developers’ communities such as linux-sunxi.

The complete details and/or binary files are not available at this time, but if you are interested in Linux fast boot, you may considering checking Adeneo Embedded presentation at ELCE 2012 who did something very similar on Freescale i.MX51 & i.MX 6Q hardware.