8d technologies

Drivers and patches for Compulab cm-x255 and cm-x270w boards

Why this page? | News | Alternate flash drivers | Kernels | Faq/Howto | Datasheets | Contact | Links
Why this page?

Here at 8d, we use ARM-Linux on single board computers from Compulab in our products. (More precisely, we use the cm-x255 aka Armcore and cm-x270w) I'm responsible for maintaning the linux kernels we use on our boards and I've created this page to publish my work in the hope that it will be useful to the community.

Ideally, I would like this page to become a place where everyone can post their patches or information about running Linux on Compulab boards. If you wish to contribute, please contact me. If there is demand for it, I'll setup a mailing list.


News

Alternate flash drivers
Both the cm-x255 and cm-x270w comes with on-board NOR flash (for the bootloader and kernel) and can have NAND flash installed (useful for large root filesystems). Compulab provides drivers for those chips with their Linux patch, but we did not want to use them for a few reasons.

I wrote drivers for accessing the flash chips with the Linux MTD layer. I include the latest versions of the patches with the kernel releases, but the original separate patches and technical details can be found on the flash drivers page.

Kernels
Here is my current patch which applies on 2.6.17-rc6. Everything appears to be stable so far and feedback would be welcomed. I still need to rework some areas and clean up some parts. Details about what needs rework is available in the release notes page. I use gcc 4.0.2 (Generic-arm_gcc-4.0.2_glibc-2.3.3.tar.bz2 from https://arm.nihilisme.ca) to compile.
8d-cmx2xx-2.6.18-rc2-aug16.diff (387K)

Important: If you want to use this kernel on a cm-x270, please read the section about machine type id below.

Supported hardware/features summary:
CM-X255 CM-X270
Booting (board init) OK OK
Activity Leds OK OK
PXA Framebuffer OK OK
2700G Framebuffer N/A OK
PXA USB Host N/A OK
PXA USB Slave OK (Tested Ethernet gadget and usb-char. Did Compile-only tests for others.)
PCI OK TODO
PCI OHCI USB Host OK N/A
DM9000 ethernet OK OK
V3020 RTC N/A OK (merged)
max6902 RTC OK (merged) N/A
PCMCIA Compiles, Not tested OK (Tested with ATX base)
PXA2xx AC97 Compiles and detected at boot, sound not tested.
Touchscreen controller (UCB1400) OK OK
Default configs:
If you want to try a working kernel config, use cm-x270_defconfig or cm-x255_defconfig as appropriate. Just type make cm-x250_defconfig or make cm-x270_defconfig

Your binutils is too old if you get a parse error in arch/arm/kernel/vmlinux.lds at line 1541. To workaround this, comment lines 1541 and 1542 in arch/arm/kernel/vmlinux.lds or update to a new toolchain.

A word about machines types id:
In order to prevent some conflicts with compulab patches and to differenciate between the cm-x255 and the cm-x270, I registered two new machines types. However, the cm-x270 bootloader still passes the old id, which prevent booting. You can apply this patch to hardcode the architecture ID into the kernel. The cm-x255 is not affected by this since the value is hardcoded in the kernel. Ideally, someone should port UBoot to the cm-x270 and cm-x255. Another way to solve the issue might be to use some userinit code (A Compulab bootloader feature which allows you to run your own code at some point in the initialisation of the board) which loads and boots the kernel with the right machine-type value.

You can also use my kernel loader to solve the architecture type problem and workaround some limitations of Compulab's bootloader:
http://raph.people.8d.com/howto.php#size

Previous patches:
8d-cmx2xx-2.6.17.1-june21.diff (385K)
8d-cmx2xx-2.6.17-rc6-june20.diff (374K)
8d-cmx2xx-2.6.17-rc6-june15.diff (193K)
8d-cmx2xx-2.6.17-rc6.diff (190K)
8d-cmx2xx-2.6.17-rc5.diff (192K)
8d-cmx2xx-may25.diff (488K)
8d-cmx270-may12.diff
8d-cmx270-may10.diff (uses old arch id)
8d-cmx270-may9.diff (uses old arch id)

Frequently asked questions (FAQ) and howtos
The FAQ/Howto is on a separate page:
Howto and frequently asked questions

Datasheets
Here are the datasheet of some of the peripherals present on cm-x255 and cm-x270 boards:
RTC on the cm-x270: V3020_DS.pdf
RTC on the cm-x255: MAX6902.pdf
128 Meg nand flash on cm-x270: ds_k9f1g08x0a_rev10.pdf

Contact
You may contact me by email if you have suggestions, improvements, patches, information or links that you would like me to post on this page:

Raphael Assenat <raph.armcore@8d.com>

Links
The ARM Linux Project: http://www.arm.linux.org.uk/
ARM linux development: https://arm.nihilisme.ca/
Memory Technology Device (MTD): http://www.linux-mtd.infradead.org/
CompuLab website: http://www.compulab.co.il


created with vim Valid HTML 4.01 Transitional Sponsored and hosted by:8d technologies