Dell Axim X5
This separate page for the Axim X5 Linux porting effort has been created by AndreasMohr.
Status
For some other status page, please see http://www.handhelds.org/projects/axim.html
Scroll down to the Working Demo for instructions on running the current kernel 2.6.xx port.
The initial port of kernel 2.4.19 was done by Martin Demin on May-June 2003. Here are the binaries and installation instructions: http://www.clanbv.org/public/axim.html. However, it works only on PPC2002-based Dell Axim's, on PDAs equipped with PocketPC 2003 CompactFlash card does not work.
The porting effort
People involved:
-
Martin Demin, demo
-
Andrew Zabolotny, http://www.ozerki.net/homepage/zap/
-
Matthew Garrett, mjg59
-
AndreasMohr (wannabe developer for now only
There is an AximPortingStepByStep page with instructions on how to set up a kernel and initrd for Axim, but it's obsolete now. Better get a working copy of Linux for Dell Axim (see Working Demo section below) and start hacking it.
Please add your signature and ideas here if you think you could be of help in this effort to get the Axim X5 fully running with 2.6.x and power management and also on builtin flash.
The effort is now put into the 2.6.x branch of kernel. The old 2.4.x kernel is deprecated and Dell Axim support there won't be improved anymore.
There is a separate DellAximX5Hardware page that contains the results of many months of reverse-engineering the Dell Axim X5 hardware.
Todo
-
MediaQ 1132 base SoC driver (assigned: zap; status: finished).
Specs for the 1132 used to be a FREE DOWNLOAD at http://www.mediaq.com until November, but now at most with a time-consuming registration at your local sales office (shame on you, nVidia!). But thanks to the old CRL you can get the main
datasheet in the h5400 porting documents
directory.
-
PCMCIA / CompactFlash (CF) 2.6.x support (assigned: zap; status: finished as-of 02 Jan 2003)
PCMCIA IRQ pin is connected to MediaQ 1132 GPIO2, so depends on this driver. Works, hdparm yields 1.9MB/s from Transcend 256MB CF card. Linux 2.6.x has problems reading mmap()ed content from CF, on several architectures (according to Russell King known since about May 2003), "not easy to fix". Workaround is to use cachepolicy=writethrough as boot parameter. :-P
-
SecureDigital (SD) and MMC support non-existent (assigned: nobody yet).
Axim is using MediaQ chip's SPI interface for SD/MMC (yes, don't shake your head, MMC standard supports SPI interface in a limited way... thus I don't see a single reason why you will want to buy an SD card instead of MMC for use on Axim... they'll work both same way, and SD is more expensive). There must be a driver that will use base MediaQ SoC driver to access its SPI subdevice.
-
touchscreen. (assigned: zap. status: finished).
Still getting noise in the Y channel but it looks like a bug in hardware. WinCE pen input is smooth; I believe the noise is coming from the IrDA transceiver that I'm using as a serial console (must try without a IrDA console). Update: switched to using DMA transfers (750 readings per second); this gives a lot of data to filter; the result is a smooth ~750/4 samples per second touchscreen data stream (no more noise).
-
USB client (UDC). (assigned: zap; status: finished).
For some reason, USB client is connected to MediaQ not to PXA255, thus existing USB gadget drivers did't work. Now that the UDC driver is finished, at least g_ether works (e.g. Axim emulates a "USB network card"). The network link works quite well; I've run it for a few hours with a non-stop data flow and it didn't exhibited even a single glitch.
-
LED control. (assigned: nobody yet).
There is some info in kernel 2.4 CVS Documentation/axim.txt about which GPIO pins are LEDs connected to.
-
NOR flash. (assigned: nobody yet).
Figure out how to support writing to flash memory (I found the 'flash write enable' PXA GPIO pin, see [DellAximX5Hardware]). Root filesystem should be in flash memory (those 48/32Mb ROM mentioned in specification). This means we'll have to kick wince out for this.
Update: the standard Intel StrataFlash drivers (cfi_probe, mtd_block and mtd_char) drivers seems to work ok for read access. Haven't got the guts to try write access though.
-
The driver for buttons. (assigned: mjg59; status: working).
There are still problem in making the input events available to user-space programs (e.g. Opie doesn't see the key press events except ENTER (joypad center): has to be investigated why).
-
Battery status driver. (assigned: zap; status: semi-working).
Still have to figure out how to find out backup battery status.
-
figure out wince.img flash images file layout (checksumming, headers, ...) to be able to flash our own Linux images (see below)
-
find the JTAG test pins on the board (see [DellAximX5Hardware])
-
bootldr for Axim is not a stringent requirement, we can use the built-in loader (at power on it just passes control to whatever is in ROM at 0x40000).
Helpful information includes
linux/Documentation/axim.txt, FamiliarKernelPatches, [How to compile applications and develop for the iPAQ] and DeveloperDocuments in general.
wince.img flash writing
Actually writing a bootloader plus Linux kernel on the builtin flash of the Axim shouldn't be a problem, since both X5 and X3 have a bootloader with checksummed flashing support for the remaining flash space (see axim.txt). The checksummed images that can be flashed by this loader are just be a standard form of WinCE images. See http://www.xs4all.nl/~itsme/projects/xda/romtools.html! The boot image would probably be loaded by the vendor bootloader at address 0x40000 and would consist of a small init program that sets up a tag list, copies the kernel from flash to RAM and then jumps to kernel image, which then mounts some JFFS2 file system image at some later place in Flash. A better solution perhaps would be to parse the in-ROM jffs filesystem, get out of it the /boot/zImage and /boot/params files and use them instead; this will allow very easy Linux kernel upgrade.
Working Demo
If you're just wondering how Linux on Dell Axim X5 looks like, you can get the binary files from
Andrew Zabolotny's home page. The page includes (relatively) detailed installation and usage instructions.
A general discussion on the demo including helpful tidbits on installation can be found at AximDemo The following page provides more details in the installation of Andrew Zabolotny's demo. Including some newbie things like how to format a CF card, how large should the partitions be etc etc.
Links
A discussion is going on at Dell Handhelds-Technical forum, see http://delltalk.us.dell.com/supportforums/board/message?board.id=dellpda&message.id=2108
See also the Axim-Linux discussion board at
Aximsite.
/. also had a
discussion.
http://groups.google.de/groups?th=fb243b60d77e47e3 seems to be the initial discussion that got that thing started...
http://handhelds.org/hypermail/ipaq/173/17362.html is also very interesting.
Hardware Description
This new PDA is powerful and expandable, only not so slim as the iPaq. But look at the PRICE! There are two models available as of December 2002,
$299 Axim X5 400MHz Xscale 64MB SDRAM 48MB flash ROM USB or serial synch cradle
$199 Axim X5 300MHz Xscale 32MB SDRAM 32MB flash ROM USB or serial synch CABLE (cradle available as an upsell for this unit) BTW, the Axim X5 300MHz ("Basic") is simply an underclocked Advanced, CPU-wise (RAM speed might play a role, though!): see
this thread for further discussions and overclocking tools... No warranties of any kind, though
The Axim can be overclocked to e.g. 472MHz or 600MHz or even up to 900MHz (children, don't try 900MHz at home: hardware damage might occur!) The 300MHz Axim can be overclocked only up to 400MHz
It comes with PocketPC installed. ("doh!"
It has two Intel StrataFlash J3 chips (192Mb): 2 x 24MB == 48MB. Chip markings:
-
upper chip:
192SJ3AM 52480370A Z249I024A (M)(C)'00
-
lower chip:
192SJ3AM 52490273A Z249I028A (M)(C)'00
These Intel parts each contain 2 separate StrataFlash parts. A 16MB and an 8MB I believe the 16MB parts are at 0x0 physical and the 8MB is at CS2 wherever that is.
Further hardware info (plus pictures) can be found at http://www.iit.edu/~parrlaw/axim.html
Sync connector pinout (as far as we managed to compile it) can be found on DellAximPinout.