2009년 4월 27일 월요일

Android on S3C6410 target board

Long time since we successfully ported Android on PXA270 evaulation board.
As you know, Google opened android full sources last year.
After that, we ported android to various system, and here is one of them, Samsung S3C6410 based target board.



Hardware Spec.
CPU : Samsung S3C6410X ARM1176JZF-S 667MHz Application Processor
Memory: 128Mbytes Mobile DDR, 256Mbytes SLC NAND Flash, 4Mbytes NOR Flash
Display : 5” WVGA(800x480) Color TFT with Touch Screen Interface
Audio : Wolfson WM8960 Audio Codec with 1W Stereo Speaker Amplifier

----

The following are the porting steps.

0. Setting Compiler
- Environment variables for ARM compiler
- export ARCH=arm
- export CROSS_COMPLIE=arm-eabi-
- export PATH=$PATH:(Android Source Directory)/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin


1. Kernel Compile : Android kernel for 6410
- Get Android sources.
- Use patch with this diff file (Should use 2.6.29 kernel version)
- make zImage

2. Android
- Should fix battery and AC power logic with attached source codes.
/hardware/libhardware_legacy/power/power.c
/frameworks/base/services/jni/com_android_server_BatteryService.cpp
- Just make!

3. Sound Driver
- ALSA interface does not recognized in original android source.
So need to fix up followings,
- Apply alsa library , audio interface
- git clone git://android.git.kernel.org/platform/external/alsa-lib.git
- git checkout origin/master ==> copy alsa-lib directory to external directory (cp -a)
- git clone git://android.git.kernel.org/platform/hardware/alsa_sound.git
- git checkout origin/master ==> copy alsa_sound directory to hardware directory (cp -a)
- Modify file "build/target/board/generic/BoardConfig.mk"
- BOARD_USES_GENERIC_AUDIO := false
- BOARD_USES_ALSA_AUDIO := true
- make!