So what’s the deal with Zipit Z2 bootloaders? Well, there are two of them :-) From factory the Z2 comes with bootloader called “blob”. It is simple bootloader with source and modifcations published at linux.zipitwireless.com site but there are few issues with it:
- it supports only serial console (no keyboard or lcd) so when you flash wrong kernel you need to do serial mod to recover
- it boots only kernel from internal flash (no sd card)
- it gets the Z2 machine id wrong (it reuses one allocated for Mainstone board) so it does not boot recent kernels built with correct machine id allocated for Z2
- there is a rumour that the actual binary flashed in Z2 is built from slightly different source and previous attempts to build blob binary from published sources resulted in bricked zipit
The solution to all this is called u-boot. Sources for Z2 version is currently published in marex‘s devel branch of u-boot-pxa tree and there are also some out of tree patches. One mentioned here is for implementing poweroff/deep sleep on shutdown or reset like blob does, and the other two are currently mine. The first one fixes flaky pxa27x-mkp keyboard driver and the second one implements proper lcd console rotation because the native Z2 LCD panel orientation is 90 degrees rotated. The difference can be seen here:
This shows chain-loading my u-boot version from original u-boot flashed in the device.
I got a Zipit Z2 :-) In fact I got couple of them :-)
I had one for quite some time but did not find enough time/motivation to do something with it. But thanks to recent relatively stable $9.99/$17.99 Zipit Z2 ebay source the Z2 community got a lot of fresh blood so things started to move a bit faster. And since the price makes it now a kind of disposable device I bought few additonal ones and jumped in.
What is a Zipit Z2? It is a clamshell PXA-270 device (clockable to at least 416MHz) with keyboard, 320×240 LCD, 32MB SDRAM, 8MB flash, miniSD slot and Marvell Wi-fi. So basically it is a Ben Nanonote on wireless stereoids but much cheaper! The device is very open for hacking, with recent linux kernel and u-boot bootloader available. There is also expansion connector with USB 1.1 client/host, I2C, audio in and out and PXA camera interface reconfigurable to 12 generic GPIOs. So while it may be a bit outdated ‘linux in your pocket’ device, it may still be nice $20 Arduino-style replacement.
Few random links for the start:
http://linux.zipitwireless.com/ – official developer website
http://www.marvell.com/products/processors/applications/pxa_family/ – developer manual
http://russelldavis.org/ – rkdavis’s great blog with links to other blogs on right side
http://mozzwald.com/ – mozzwald’s blog
http://www.notanon.com/category/zipit/ geordy’s blog
So far I did some ‘u-boot improvement’ hacking and plan to do something with the expansion port as time permits.