Zipit2 OS

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