The LOOX 600 is an Xscale based PDA. It is delivered with m$ PocketPC. The goal of the loox-linux projet is to get Linux running on the LOOX.

Boot loader

To make more easy the developpements Linux will be loaded from a CF card. 4 files are needed to boot Linux:
1 - A bootloader (cyace-arm.exe).
2 - A configuration file for the bootloader (cyacecfg.txt).
3 - A Linux kernel (linux.kernel.kernel).
4 - A initrd file containing a minimum ext2 file system (linux.kernel.initrd).

Booting from the CF card allow to return to PocketPC2002 by pressing the reset button of the LOOX. Of course all the data of the RAM is lost after booting Linux, do not forget to backup the LOOX before trying it.

The boot loader is adapted to the LOOX from hiyace-yach . To compile it Microsoft eMbedded Visual C++ 3.0 is needed. See msdn downloads .

The executable is named cyace-arm.exe. To build it download the hiyace-yach subproject in a windoze box (win98 is ok) and select the cyace.vcw Project Workspace. Connect the LOOX to the PC using the USB cable. In the m$ eMbedded Visual C++ click build. cyace-arm.exe should be transfered in the windows/Start Menu of the LOOX.

Building Kernel

To build the Kernel a binutils and gcc for Xscale is needed. See Chaintool for the Pocket LOOX if you want to build it.

To prepare the Kernel do the following steps:
1 - Download the kernel sources from .
2 - Download and apply the patches for ARM processors from .
3 - Download and apply the patches for the Xscale processors from .
4 - Download and apply the corresponding patches for the LOOX in loox-linux CVS .

The versions must be compatible:

LOOX patches XScale patches ARM patches Kernel version
diff-2.4.19-rmk7-pxa1-loox diff-2.4.19-rmk7-pxa1 diff-2.4.19-rmk7 2.4.19

Do something like:

Download the kernel from and extract it as usual.
[user@host] ~ $ mv linux-2.4.19 linux
[user@host] ~ $ patch -p0 < patch-2.4.19-rmk7
patching file linux/CREDITS
patching file linux/Documentation/
patching file linux/Documentation/arm/Booting
That should not give any error
[user@host] ~ $ patch -p1 < diff-2.4.19-rmk7-pxa1
patching file linux/Documentation/
patching file linux/Documentation/arm/XScale/PXA/USB-client
patching file linux/Makefile
That should not give any error
[user@host] ~ $ patch -p1 < diff-2.4.19-rmk7-pxa1-loox
patching file linux/Makefile
At that point you have the kernel sources for the LOOX!

Configure the Kernel for the LOOX:
In System Type Choose PXA250/210-based
In Intel PXA250/210 Choose FSC Pocket LOOX 600
In System Type Choose Workaround for XScale cache errata.

In General setup Choose NWFPE math emulation
In General setup Fill Default kernel command string with "keepinitrd initrd=0xA2200000,1776638 video=pxa:xres:240,yres:320,bpp:16"

Go to MMC device drivers (under General setup):
Choose Multi Media Card support
Choose PXA250 MMC driver
Choose MMX block driver
Choose MMX partitioning support

In Block device Choose RAM disk support
In Block device Choose Init RAM disk (initrd) support

Go to Console Driver:
In Frame-buffer support Choose Support for frame buffer device
In Frame-buffer support Choose PXA LCD support
Choose 16-Bpp for LCD Bit Depth

In Character devices Choose Standard/generic (8250/16550...)
In Character devices Choose Support for console on serial port

Build the Kernel:

[user@host] ~ $ make dep
make[2]: Leaving directory `/home/loox/linux/arch/arm/fastfpe'
make[1]: Leaving directory `/home/loox/linux'
[user@host] ~ $ make Image
make[1]: Entering directory `/home/loox/linux/arch/arm/boot'
/usr/local/arm/bin/arm-linux-objcopy -O binary -R .note -R .comment -S /home/loox/linux/vmlinux Image
make[1]: Leaving directory `/home/loox/linux/arch/arm/boot'
[user@host] ~ $ ls -lt arch/arm/boot/Image
-rwxr-xr-x 1 loox users 1147820 2003-06-21 14:47 arch/arm/boot/Image
The file Image has to be copied in the CF card under the name linux.kernel.kernel

Made using Ant-1.5.1 and Xalan- 1 ( Apache Software Foundation : )