Zaurus 2.6 Kernel Development

Current release: June 6, 2005
Other files can be found here.

Richard Purdie maintains the Sharp SL C7xx Zaurus versions at his web page.

Patch orginization. I no longer release a large patch containing all of my changes. I maintain one patch, which I am calling base, which contains all the patches that have been submitted upstream and have either been accepted or are very close. This patch will be fluctuating quite a bit, as changes make their way upstreem. I also maintain a patch that contains a bunch of random changes that have no chance of making it upstream and that I need to rework. This I am calling local. Then, for every driver or feature, I will be maintaining a seperate patch. These will generally build on top of the lenz-base patch, but will not depend on the lenz-local patch.

Optional patches

The patch is managed by quilt. I export the patches as Greg KH explained in here.

Please email me at John Lenz lenz@cs.wisc.edu. Anouncements and discussion of zaurus related kernel devlopment happens on the kernel-discuss@handhelds.org mailing list. Discussion used to take place on the openzaurus-devel mailing list, so see that for archives.


Status

Collie

Warning: The 2.6.12-rc5 patch does not boot on my collie, and I am currently unable to determine why. Older patches (say against 2.6.11) boot fine.

This patch has working support for collie (SL5500). The MTD code and the keyboard both work. I am able to boot and mount initrd.bin as the root device, and also to log in with the keyboard with the console on the framebuffer with a root fs image built by oe.

This patch uses an obsolete driver for MTD access. If you unselect the obsolete chip driver and use the AMD/Sharp CFI chip driver in menuconfig, and then modify arch/arm/mach-sa1100/collie.c and change .map_name = "sharp" to .map_name = "cfi_probe". I have had some success with the CFI driver, but it does spawn a bunch of error messages. Take a look at this message on the linux-mtd mailing list.

Missing features

Poodle

Thanks to Dow Hurst, I now have a SL5600 (poodle) and have starting working on support! This patch has working support for poodle (SL5600). The MTD code, the keyboard, and the framebuffer all work. I am able to log into a console and poke around. I am using the bootstrap image ffrom OpenZaurus 3.5.2 located http://www.openzaurus.org/official/unstable/3.5.2/sl5600/.

Missing features

Future

I have been working on and off on this project since January 2004, and it is my intention to apply for the Google summer of code contest to work on poodle support. My goal is to by the end of the summer get poodle supported enough that OpenZaurus can release the 2.6 kernel as an option on poodle.

Summer of code application:

Over the past year, I have been developing and porting the 2.6 kernel to the Sharp Zaurus SL5500 and SL5600 (codenamed collie and poodle). As of kernel version 2.6.12, many of my patches for the basic support for collie and poodle have been accepted into the mainline kernel. This includes support for the basic machine, the keyboard, and the locomo chip. All of the hacks and code to get 2.6 booting on poodle have already been developed (and what has not yet been accepted by Linus or Russell King can be found on my website). The remaining work to get a fully functional 2.6 kernel running on poodle consists of writing drivers.

The remaining work on the 2.6 kernel is to implement drivers for devices that are not yet functional. Unimplemented drivers include touchscreen, USB, PCMCIA, power management, sound, SD card, and the IR port. No work has currently been started on any of these features, but Richard Purdie has implemented some of these drivers for the corgi Zaurus model. Some code might possibly be shared (this would need to be investigated). The 2.4 source code released by Sharp is the main source of information about how the hardware interface works (this code is also available on my web site).

Another aspect of 2.6 Zaurus kernel development is getting implemented drivers in shape for upstream acceptance. For example, the backlight code for the lcd is currently implemented, but hooks directly into the poodle_fb_info structure inside arch/arm/mach-pxa/poodle.c. While this is the currently accepted way to interface with the pxafb.c driver, integrating the recent addition of the backlight/frontlight interface inside drivers/video/backlight into pxafb.c and then using that to talk to the backlight and frontlight code is the long-term solution.

The goal of this summer project will be to get the touchscreen, USB, PCMCIA, and power management supported, with the acceptance of this code into the mainline 2.6 kernel kept in mind. These drivers will allow the OpenZaurus project to offer the 2.6 kernel as an option. More information and the past history of this project can be found on my web site at http://www.cs.wisc.edu/~lenz/zaurus. More information about me can be found at http://www.cs.wisc.edu/~lenz

School Bio: I just graduated in May 2005 with my Bachelors of Science from the University of Wisconsin-Madison (www.wisc.edu) with a double major in Computer Science and Mathematics, and will be attending Rensselaer Polytechnic Institute (www.rpi.edu) in the Computer Science, PhD program in the fall.