Sciphone G2 (MT6235) status

Marcin.Mielczarczyk at Marcin.Mielczarczyk at
Fri Dec 3 17:53:19 UTC 2010

Hi list,

Last days I was focused on getting self-built code running from NAND memory and finally I got it working.
You can find short demo which actually covers all the functionality which is currently working on Sciphone:

Here is the list of functionalities which are already working:

  * NAND memory driver with HW ECC control and MTK's ECC layout (ECC layout is important for loading SPL, creating dumps of firmware and restoring it).
    NAND driver also supports all the NAND memories found so far on Sciphone G2 (small page and large page).

  * SD/MMC card support

  * LCD driver (automatically detects LCD controller, so far identified two different LCD controllers mounted in G2: ILI9331 and ILI9325)

  * tool for creating bootable image from given binary file (should work on all MT62xx chips).
    It doesn't need to be SPL (from U-Boot), it can be self-built binary which will be run by IPL on the phone (not bigger than 64kB).

  * automatic detection of RAM memory in SPL (two configurations checked) - this will be added by Steve to osmocon loader as well

  * BBT and ENV can be saved in NAND (BBT in NAND is disabled by default, as deletes last two NAND blocks, and most people are running from RAM)

I also updated wiki with informations about new features added:

Open issues:

  * LCD controller is using the same data lines as NFI (NAND) controller. Currently it's not possible to use NAND when LCD is enabled.

  * vibrator in SPL code - vibrator will be turned on in SPL when it'll start reading NAND and turned off when it'll finish,
    thanks to that user will know that SPL code has started (short code which doesn't change SPL size).

  * boot process from NAND has been tested only on small page NAND device - I'll create dump of my second phone
    and try this process on large page NAND device as well

I recommend to create full NAND dump before playing with new software.
There is already driver for NAND running and you can erase/write NAND easily by mistake.
I turned on define CONFIG_ENV_IS_IN_NAND, which will not erase/write NAND at start, but when you execute "saveenv" command it'll do so.

Please, make NAND dump first.

The problem with NAND dump is that I haven't found built-in functionality in U-Boot that sends dump of RAM memory (where NAND will be read) to PC/SD card.
Dump also has to be created in chunks, as there is less RAM memory than NAND. I'm planning to create dump/restore commands which will save/restore dumps using SD card, but I didn't start it yet.
Currently the easiest way is to create dump in FlashTool.
I checked that restoring of phone using dump created in FlashTool works, so going back to previous firmware is possible.

Unfortunatelly code for LCD driver is not yet in git as my coleague didn't manage to finish it today. Hopefully it'll be available during weekend or beginning next week.

Now I'm going to switch to Linux kernel side and start writing drivers there...

Other good new is that Andrew has reported last week that he successfully run our code on E1000 chinese phone which is also based on MT6235.
There was no need to make any changes.
Here is how E1000 phone looks like:


More information about the baseband-devel mailing list