Technical information

From GreenphoneWiki

Jump to: navigation, search

Contents

[edit] Hardware

The Greenphone's hardware was designed by the Chinese mobile phone design company Yuhua Tel, and is code named 'Omega'


[edit] CPU and memory

The CPU is an Intel PXA270, which is compatible to ARM architecture 5TE. This processor runs at 312 MHz. The data sheets are available from Intel.The external SRAM consists of 64 MB. The ROM is a DiskOnChip device. Further details are available here. The GSM/GPRS handling is done by a Broadcom BCM2121. Unfortunately, I cannot get hands on a data sheet of it.

BCM2121 product brief.

[edit] S1D19120 display

The display controller comes from Epson. I finally received a datasheet from Epson, but publishing is prohibited.

[edit] STLC2500 Bluetooth

Only a product brief is available here.

[edit] WM9713 Sound

The datasheet is available here.

[edit] OV9640 Camera

A product brief is available here.

The OV9640 data sheet does not seem to be publicly available, but there is a data sheet for the OV9625, which looks like it might be an older design in the same series. This may or may not be helpful - use it with caution. One thing to be aware of is that the OV9640 has at least twice as many IO registers as the OV9625. Even if the OV9625 data sheet is relevant, a large part of the OV9640 will remain undocumented.

[edit] Vibrator

The vibrator seems to be connected to the GPIO pin 89. I finally wrote a GPL'ed driver for it.

You can get it here. If the feedback is well, I'm gonna set up a sourceforge project for that and other upcoming drivers.

[edit] Installation instructions

Unpack the driver in the kernel source directory. This will give you a subdirectory vibrator. Follow the instructions in Install_a_new_kernel_on_Greenphone to set up your host tools and the kernel configuration (you do not need to flash the kernel), change to the subdirectory and execute make. This should give you vibrator.o which then could be used as a replacement for omega_vibrator.o. This works fine with the vibrator test application in the test directory of the kernel sources. Any feedback is welcome. Please use the discussion page here, so that others could participate, too.

[edit] TrueFFS -- DiskOnChip

The D.O.C. on the Greenphone is the msystems G3 DOC TrueFFS 6.x. A datasheet is available here, but it is far from complete.

The is not produced anymore (the End-Of-Life was announced October 2005, final order date 02/28/2006, final shipment date 06/30/2006), I wonder how it made its way into the Greenphone.

Currently, no support for the G3 is available for the MTD subsystem of Linux. I tried analyzing the G3, but finally gave up trying to implement a MTD driver for it.

The tffs.o seems to work with a shift of 6 for the partitions, so that those are available with minors 0, 32, 64, 96 etc.

[edit] PCF50606 Power Management

A datasheet is available here. Some application note from Intel is available here.

It is connected to the power I2C pins and found on address PCF50606_IIC_AD = 0x10.

[edit] LED driver

You can find a GPL'ed LED driver here.

[edit] Installation instructions

Unpack the driver in the kernel source directory. This will give you a subdirectory chgled. Follow the instructions in Install_a_new_kernel_on_Greenphone to set up your host tools and the kernel configuration (you do not need to flash the kernel), change to the subdirectory and execute make. This should give you chgled.o which then could be used as a replacement for omega_chgled.o.

PLEASE NOTE

The original driver omega_chgled.o is buggy. When removing the module with rmmod, the system gets instable. To disable the original driver, remount the root filesystem as read/write with mount -o remount,rw /, comment out the module in /etc/rc.d/rc.modules and restart the phone.

Any feedback is welcome. Please use the discussion page here, so that others could participate, too.

[edit] Boot Process

The processor start execution at address 00000000H. At this address, the DiskOnChip device resides. The IPL (initial program loader) starts there. The SPL (secondary program loader) is executed by the IPL and itself executes (somehow) the zImage. This contains an initial ramdisk (initrd) and loads tffs.o (the TrueFFS driver module), which then switches to the root filesystem. This whole process needs to be further analyzed.

[edit] Linux

The kernel is a version 2.4.19 kernel with the rmk7-pxa2 patch applied. These patches are available here and here. To the vanilla 2.4.19, you first have to apply patch-2.4.19-rmk7 and then diff-2.4.19-rmk7-pxa2. Nevertheless, the differences between this and the kernel sources from Trolltech are big. I will point out the details later.

The kernel sources from Trolltech are the same kernel on the current Greenphone, after the bootloader update. If you haven't updated your kernel and bootloader, you need to, as the bootloader and kernel that were initially shipped on a very limited number of Greenphones contains code from an upstream vendor that violates certain open source licenses. Once Trolltech was aware of this infringement, they fixed the problem.

Personal tools