The Zipit 2 currently runs a very stripped down 2.6.21.1 Linux system. Almost the entire rootfs is inside the kernel’s initramfs, which is in itself bundled with the kernel. All binaries that run on it are statically linked so there are no libraries on the system to take advantage of when building custom software. Also, there is very little hardware support prebuilt into kernel to, for instance, take advantage of the USB device port. Interesting points on the system:
- The official development wiki for the Linux system on the Zipit2 can be found here. The wiki also has GPL patches for the GPL software running on the Zipit2. It also has further information about the underlying hardware of the Zipit2, but it requires registration and acceptance of their agreement to view that information.
- There is one large application on the Zipit2 that is really the heart of the Z2. It is the application you see that presents you the graphical interface.
- The Zipit2 app is located in /mnt/ffs.
- The wifi drivers are currently not open sourced, so the kernel cannot be upgraded without losing wifi support.
- The Zipit2 app also sets up the wifi, including its MAC address. So under a system that does not run the app, the Marvell chip reverts to a predefined MAC address.
- Gaining access to the Zipit system is fairly trivial. There is now multiple ways to gain access, including JTAG, serial port, and using the Z2Shell hack that uses a SD card which is on the Z2 Wiki.
Below is the complete dmesg of a Zipit2. Please note the dmesg may change with updates coming from Zipit Wireless.
Linux version 2.6.21.1 (jkaisner@savior.csd.local) (gcc version 3.4.1 20040714 (TimeSys 3.4.1-7)) #162 Wed Nov 28 15:21:59 EST 2007 CPU: XScale-PXA270 [69054117] revision 7 (ARMv5TE), cr=0000397f Machine: Intel HCDDBBVA0 Development Platform (aka Mainstone) Memory policy: ECC disabled, Data cache writeback On node 0 totalpages: 8192 DMA zone: 64 pages used for memmap DMA zone: 0 pages reserved DMA zone: 8128 pages, LIFO batch:0 Normal zone: 0 pages used for memmap Run Mode clock: 208.00MHz (*16) Turbo Mode clock: 312.00MHz (*1.5, active) Memory clock: 104.00MHz (/2) System bus clock: 104.00MHz CPU0: D VIVT undefined 5 cache CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets Built 1 zonelists. Total pages: 8128 Kernel command line: console=ttyS2,115200 PID hash table entries: 128 (order: 7, 512 bytes) Console: colour dummy device 80x30 Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) Memory: 32MB = 32MB total Memory: 28896KB available (2432K code, 308K data, 808K init) Calibrating delay loop... 311.29 BogoMIPS (lpj=1556480) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok NET: Registered protocol family 16 Mainstone configured to boot from processor-flash Set Zipit2 lcd paramaters... ZIPIT2 - fbmem_init.. Time: pxa_timer clocksource has been installed. NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 1024 (order: 1, 8192 bytes) TCP bind hash table entries: 1024 (order: 0, 4096 bytes) TCP: Hash tables configured (established 1024 bind 1024) TCP reno registered populate_rootfs...initramfs: start: 0xC001C360, end: 0xC00CCA33 NetWinder Floating Point Emulator V0.97 (double precision) audit: initializing netlink socket (disabled) audit(3.870:1): initialized JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc. io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered (default) ZIPIT2 lccr0 = 0x5b00af8 ZIPIT2 lccr3 = 0x4b00006 pxa2xx-fb pxa2xx-fb: machine LCCR0 setting contains illegal bits: 00300878 pxa2xx-fb pxa2xx-fb: machine LCCR3 setting contains illegal bits: 00300000 pxa2xx-fb pxa2xx-fb: Double Pixel Data (DPD) mode is only valid in passive mono single panel mode ZIPIT2 - register_framebuffer Set Zipit2 lcd power 1... ZIPIT2 - pixmap.addr == NULL ZIPIT2 - SHOW LOGO PXAFB driver registered... pxa2xx-uart.0: ttyS0 at MMIO 0x40100000 (irq = 22) is a FFUART pxa2xx-uart.1: ttyS1 at MMIO 0x40200000 (irq = 21) is a BTUART pxa2xx-uart.2: ttyS2 at MMIO 0x40700000 (irq = 20) is a STUART RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize Mainstone configured to boot from processor flash Mainstone configured: 0x00000000, 0xC3000000, 0x04000000 Probing processor flash at physical address 0x00000000 (16-bit bankwidth) processor flash: Found 1 x16 devices at 0x0 in 16-bit bank processor flash: Found an alias at 0x800000 for the chip at 0x0 processor flash: Found an alias at 0x1000000 for the chip at 0x0 processor flash: Found an alias at 0x1800000 for the chip at 0x0 processor flash: Found an alias at 0x2000000 for the chip at 0x0 processor flash: Found an alias at 0x2800000 for the chip at 0x0 processor flash: Found an alias at 0x3000000 for the chip at 0x0 processor flash: Found an alias at 0x3800000 for the chip at 0x0 Intel/Sharp Extended Query Table at 0x0039 Intel/Sharp Extended Query Table at 0x0039 Intel/Sharp Extended Query Table at 0x0039 Intel/Sharp Extended Query Table at 0x0039 Intel/Sharp Extended Query Table at 0x0039 cfi_cmdset_0001: Erase suspend on write enabled erase region 0: offset=0x0,size=0x2000,blocks=8 erase region 1: offset=0x10000,size=0x10000,blocks=127 processor flash: 1 set(s) of 1 interleaved chips --> 16 partitions of 512 KiB RedBoot partition parsing not available cmdlinepart partition parsing not available Using static partitions on processor flash Creating 3 MTD partitions on "processor flash": 0x00000000-0x00010000 : "Bootloader" 0x00010000-0x00240000 : "Kernel" 0x00240000-0x00800000 : "Filesystem" mice: PS/2 mouse device common for all mice mmc_detect_change delay = 0 TCP cubic registered NET: Registered protocol family 1 NET: Registered protocol family 17 XScale iWMMXt coprocessor detected. mmc_rescan... mainstone_mci_setpower: on mainstone_mci_setpower: on Freeing init memory: 808K mmc0: SCR structure version 0 mmcblk0: mmc0:0001 967680KiB mmcblk0: p1 input: pxa27x-keyboard as /class/input/input0 Console: switching to colour frame buffer device 30x40 Set Zipit2 lcd power 0... Set Zipit2 lcd power 1... DAI: DAI Enable with major = 14 Register GPIO driver... Chan1 = 9, Chan2 = 10, 00 wlan_main_service priority = 19:115:19:2 wlan_reassoc_service priority = 19:115:19:2