2010年3月5日 星期五

Add Devkit8000 and SBC8100 initial support to 0xdroid

Standard
As you know, I've done Android Eclair porting for Devkit8000 in the past, which is based on Embinux. It's a experimental work for passing time, I have no time to maintain and fix bugs friends reported after that. However, I think it is not good because the result will be getting lost as time goes by.

0xdroid is another Android distribution which is different from Embinux, its developer Jim Huang(jserv) who has contacted me a few months ago, and he hope that I can try porting 0xdroid on the Devkit8000. Actually, I am glad to make 0xdroid takes over my work, it is the best result for me.


Currently, I've done most works, 0xdroid can run on Devkit8000 with success. And also, My patches have been committed to 0xlab-devel mailing list. Because I have another platform SBC8100 which is also produced by Embest, I've done works on that as well.

You can see my patches from 0xlab-devel mailing list, or you can visit my website to download it directly:

http://people.linux.org.tw/~fred/patches/0xdroid/embest/


It's based on kernel source is 0xlab-kernel, you can get it from:

http://gitorious.org/0xlab-kernel


My works includes:
  • Support Embest Boards(Devkit8000 and SBC8100)
  • OMAP DSS2 Driver for display
    • 4.3 inch Embest LCD Panel support (480x272 60Hz)
    • 7 inch Embest LCD Panel support (800x480 60Hz)
  • Touchscreen Controller support (ADS7846)
    • Works with correct axis
  • Ethernet Device support (DM9000)
  • Keypad (TWL4030)
  • Force kernel into using machine ID of Beagleboard

Recently, I got a news that Devkit8000 has been registered in ARM machine table(http://www.arm.linux.org.uk/developer/machines/), so Devkit8000 has official machine ID(2330) now (SBC8100 doesn't have yet). It means that kernel can start to support it with standard. That's a good news, however, it will cause complications for us. The platform you have which still has old machine ID by default, you must patch and update the uboot to match official kernel standard for working.

For SBC8100 and most of Embest platforms, they are not registered in machine table cause it is not easy to maintain. That's why I do dirty hacks, forcing kernel into using machine ID of beagleboard when you selected "Embest board support" option. It's necessary for SBC8100, and it works with Devkit8000. You don't need to worry machine ID problem.

Besides, it will fix a bug that sound device doesn't work on beagleboard clone.

Known Issue:

OMAP Multiplexer support has a problem, it will cause kernel hangs, so we must disable OMAP_MUX. Due to SBC8100 has Wifi/Bluetooth module which is using MMC2(SDIO) with OMAP Multiplexer, the module doesn't work right now.

References:

http://fred-zone.blogspot.com/2009/12/android-eclair-porting-for-devkit8000.html
http://fred-zone.blogspot.com/2009/12/enable-ads7846-touchscreen-in-android.html
http://fred-zone.blogspot.com/2009/12/add-gpio-keys-support-for-devkit8000.html