Colibri PXA320 Android System Requirements - Toradex Colibri XScale PXA320 Module - Toradex Colibri Evaluation Board - Toradex 4.3" Sharp LQ043T3DX02 WQVGA touch TFT panel connected with 16 data lines to the generic display connector X20 as follows: Toradex Sharp Description X20 X1 1 o 1 GND 2 | 2 L_PCLK 3 | 3 L_LCLK 4 | 4 L_FCLK 5 o 5 GND 6 o 8 LDD12/RED2 7 | 9 LDD13/RED3 8 | 10 LDD14/RED4 9 o 11 LDD15/RED5 10 LDD16 11 LDD17 12 12 GND 13 o 14 LDD6/GREEN1 14 | 15 LDD7/GREEN2 15 | 16 LDD8/GREEN3 16 | 17 LDD9/GREEN4 17 o 18 LDD10/GREEN5 18 7 LDD11/RED1 19 19 GND 20 o 21 LDD0/BLUE1 21 | 22 LDD1/BLUE2 22 | 23 LDD2/BLUE3 23 | 24 LDD3/BLUE4 24 o 25 LDD4/BLUE5 25 13 LDD5/GREEN0 26 o 26 GND 27 | 27 L_BIAS 28 | 28 +V_DISPLAY/VDD (+3V3 JP4 2-3) 29 | 29 +V_DISPLAY/VDD (+3V3 JP4 2-3) 30 | 30 R/L (GND JP6) 31 | 31 U/D (GND JP5) 32 | 32 GND 33 | 33 DISP_SPARE1/TSMY 34 | 34 DISP_SPARE2/TSMX 35 | 35 DISP_SPARE3/TSPY 36 | 36 DISP_SPARE4/TSPX 37 | 37 BL_ON/DISPLAY_ON (+3V3) 38 | 38 BL_GND 39 | 39 BL_+5V 40 o 40 BL_GND - Jumper cable from X16 (Generic Touch Screen) to X17 (Display Spare) for touch signals wired as follows X16 (Generic Touch Screen) X17 (Display Spare) 1 GND 5 GND 2 TSMY 1 DISP_SPARE1/TSMY 3 TSMX 2 DISP_SPARE2/TSMX 4 TSPY 3 DISP_SPARE3/TSPY 5 TSPX 4 DISP_SPARE4/TSPX 6 GND 6 GND - Jumper cables for buttons/keys from X11 (GPIO Usage) to X21 (LED/Switches) wired as follows Key GPIO X11 X21 Home 26 B44 15 SWITCH8 Menu 95 B48 19 BUTTON2 Back 94 B47 17 BUTTON1 Procedure - wire up Ethernet and prepare development workstation with TFTP, DHCP and NFS servers - prepare TFTP files (e.g. /srv/tftp) - copy uImage-2.6.35.7-toradex-android-noinitrd Linux kernel without initial RAM disk to uImage - copy uImage-2.6.35.7-toradex-android Linux kernel with initial RAM disk - prepare NFS root file system - extract regular rootfs-toradex-bsp-2011.02-r1.tar.bz2 root file system - copy Android file system system-android-2.2_r1.1-pointercal.tar.bz2 into it - copy Android benchmark application com.noser.android.testscreen.apk - export it via NFS - wire up serial console and start minicom serial terminal - convert Colibri to U-Boot boot loader using wince2linux - change default partiton layout in U-Boot PXA300 (there is no audio/touch controller) $ setenv mtdparts 'mtdparts=pxa3xx-nand:128k(u-boot-1-part)ro,128k(u-boot-2-part)ro,128k@256k(configuration-block)ro,128k(u-boot-3-part)ro,512k(u-boot-env)ro,3m(kernel),64m(system),32m(userdata),-(cache)' PXA310 $ setenv mtdparts 'mtdparts=pxa3xx-nand:128k(u-boot-1-part)ro,128k(u-boot-2-part)ro,128k@256k(configuration-block)ro,128k(u-boot-3-part)ro,512k(u-boot-env)ro,3m(kernel),128m(system),192m(userdata),64m(cache),-(replacement-blocks)ro' PXA320 $ setenv mtdparts 'mtdparts=pxa3xx-nand:128k(u-boot-1-part)ro,128k(u-boot-2-part)ro,128k@256k(configuration-block)ro,128k(u-boot-3-part)ro,512k(u-boot-env)ro,3m(kernel),256m(system),512m(userdata),128m(cache),-(replacement-blocks)ro' $ save - boot uImage-2.6.35.7-toradex-android-noinitrd Linux kernel without initial RAM disk using regular NFS root file system $ run nfsboot - log in as root with empty password - erase all flash partitions root@toradex:~$ flash_erase /dev/mtd6 0 0 root@toradex:~$ flash_erase /dev/mtd7 0 0 root@toradex:~$ flash_erase /dev/mtd8 0 0 - mount system partition and extract Android file system onto it root@toradex:~$ mount -t yaffs2 /dev/mtdblock6 /system root@toradex:~$ cd / root@toradex:/$ tar xjvf /system-android-2.2_r1.1-pointercal.tar.bz2 - calibrate touch screen and copy pointercal onto android file system root@toradex:/$ ts_calibrate root@toradex:/$ cp /etc/pointercal /system/etc - optionally copy benchmark application root@toradex:/$ cp /com.noser.android.testscreen.apk /system/app - unmount and reboot root@toradex:/$ umount /system root@toradex:/$ reboot - flash kernel and reboot into Android $ bootp $ tftpboot uImage-2.6.35.7-toradex-android $ nand erase 0x100000 0x300000 $ nand write 0x81000000 0x100000 0x300000 $ setenv bootcmd 'setenv bootargs ${defargs} ${mtdparts}; nboot 0x81000000 0 0x100000; bootm' $ save $ reset - first boot takes 1-2 minutes, please be patient - disable screen timeout through UI (Settings - Sound & display - Screen timeout - Never timeout) - manually enable Ethernet - modify kernel arguments form within U-Boot $ setenv bootcmd 'setenv bootargs ${defargs} ${nfsargs} ${mtdparts}; nboot 0x81000000 0 0x100000; bootm' $ save - add routing and DNS information after Android booted # route add default gw dev eth0 # setprop net.dns1 # setprop net.dns2 tested on Colibri XScale PXA320 v1.2 E, v2.0 A Limestone Android System Requirements - Toradex Limestone v1.2 with 3.5" Hitachi TX09D40VM3CBA QVGA touch TFT panel - Soldered header for serial FFUART console - Limestone console adapter cable (e.g. modified Nokia CA-42) - USB micro A male to A female cable - USB memory stick Procedure - wire up serial console and start minicom serial terminal - convert Limestone to U-Boot boot loader using wince2linux - prepare USB memory stick as follows - copy Android benchmark application com.noser.android.testscreen.apk - copy rootfs-small-toradex-bsp-2011.02-r1-ext2.img.gz RAM disk root file system to rootfs-ext2.img.gz - copy Android file system system-android-2.2_r1.1-pointercal.tar.bz2 - copy uImage-2.6.35.7-toradex-android Linux kernel - copy uImage-2.6.35.7-toradex-android-noinitrd Linux kernel without initial RAM disk to uImage - plug in USB stick via micro cable - change default partiton layout in U-Boot $ setenv mtdids 'nand0=pxa3xx-nand' $ setenv mtdparts 'mtdparts=pxa3xx-nand:128k(u-boot-1-part)ro,128k(u-boot-2-part)ro,128k@256k(configuration-block)ro,128k(u-boot-3-part)ro,512k(u-boot-env)ro,3m(kernel),256m(system),512m(userdata),128m(cache),-(replacement-blocks)ro' $ save - boot uImage Linux kernel using rootfs-ext2.img.gz RAM disk root file system $ run usbboot - log in as root with empty password - erase all flash partitions root@toradex:~$ flash_erase /dev/mtd6 0 0 root@toradex:~$ flash_erase /dev/mtd7 0 0 root@toradex:~$ flash_erase /dev/mtd8 0 0 - mount system partition and extract Android file system onto it root@toradex:~$ mount -t yaffs2 /dev/mtdblock6 /system root@toradex:~$ cd / root@toradex:/$ tar xjvf /media/sda1/system-android-2.2_r1.1-pointercal.tar.bz2 - calibrate touch screen and copy pointercal onto android file system root@toradex:/$ ts_calibrate root@toradex:/$ cp /etc/pointercal /system/etc - optionally copy benchmark application root@toradex:/$ cp /media/sda1/com.noser.android.testscreen.apk /system/app - unmount and reboot root@toradex:/$ umount /system root@toradex:/$ reboot - flash kernel and reboot into Android $ usb start $ fatload usb 0:1 0x81000000 uImage-2.6.35.7-toradex-android $ nand erase 0x100000 0x300000 $ nand write 0x81000000 0x100000 0x300000 $ setenv bootcmd 'setenv bootargs ${defargs} ${mtdparts}; nboot 0x81000000 0 0x100000; bootm' $ save $ reset - first boot takes 1-2 minutes, please be patient - disable screen timeout through UI (Settings - Sound & display - Screen timeout - Never timeout) Build Android file system from public git with patches - get sources as explained on http://source.android.com/download - apply fakebattery and pointercal patches in mydroid/frameworks/base as follows patch -p1 < - now build as usual - use tar bzipped mydroid/out/target/product/generic/system as described above under procedure