I am really excited about some recent work by Marcin on starting a u-boot and Linux kernel port to the
Mediatek MT6235 baseband processor.
Among GSM baseband processors, the MT6235 is a very unusual device. Unlike
classic GSM baseband chips, it is not based on an MMU-less ARM7TDMI/ARM7EJS but
on an ARM926EJS core. This is a full-blown ARMv5 core on which a standard Linux
kernel could run.
The reason for the MT6235 to contain such an 'advanced' ARM core is simple: Mediatek
is producing chipsets and reference designs for very inexpensive but feature-rich
phones. Instead of going to a full-blown (and expensive) smart-phone design
with separate ARM cores for the baseband and application processor, they simply make
the base-band processor a bit stronger than needed for the GSM stack, and run the entire
rich UI on the same cpu, including TCP/IP stack, touch-screen, web browser,
e-mail client, H.264 playback / camera recording, etc.
The original firmware on the Mediatek chipsets is a Nucleus-kernel based software stack
which is completely proprietary.
Now the mid-term vision for us is to have a Linux port to the MT6235, and run the OsmocomBB
Layer1 (and possibly Layer2) code inside the kernel, while the Layer3 and a user interface
program is running as application programs in userspace.
This would allow us to do a very rich user interface (imagine network
monitoring modes, protocol tracing, manual cell selection, etc.) while still
having to care only about one processor in the system. Furthermore, there are millions of
MT6235 based devices, so there will be no shortage of inexpensive hardware to
run this code on.
The MT6235 also has a built-in SD/MMC controller (for storing e.g. protocol traces that you
take from the GSM network) and it has a fast, dual-mode USB2 high-speed USB controller
for connecting it with a PC
Sure, porting our Layer1 to a completely different baseband chipset will be a lot of work,
and I don't really have any idea how long it will take us. But I think the vision of
such a powerful device (and finally bringing OsmocomBB and the Linux kernel together)
should prove a very attractive motivational factor.
This also means: Even if you have no clue about the GSM protocols, you can now start to
contribute to OsmocomBB: A lot of Linux kernel drivers for e.g. SD/MMC, USB, frame-buffer,
SPI, I2C, PWM and other integrated controllers of the MT6235 need to be written.
Like all Mediatek data sheets, the MT6235 data sheet describing all those peripherals can
be found on various places on the Web, including (but not limited to) Chinese
developer forums.
It also seems there is at least one MT6235 based phone where JTAG and serial
console have been identified (Sciphone Dream G2), which should make debugging
and bootstrapping convenient.