Mot C155 target support

Mychaela Falconia mychaela.falconia at
Tue Nov 6 18:23:34 UTC 2018

Hello FreeCalypso community,

I just got FC Magnetite running on a Mot C156 phone (same as C155)
with the following highlights:

* The firmware is flashed, not a RAM-only, not-touching-flash build
like we had with Citrine on this target.  When I get to syncing these
Magnetite-on-C155 changes into FC Selenite, we might be able to run
Selenite-gcc via fc-xram on this target like we did with Citrine, but
I am *not* bringing back our earlier FFS-in-RAM hack, neither in
Magnetite nor in Selenite, thus even if we can build Selenite-gcc in
ramimage.srec form (if it fits), it still won't be able to coexist
with Mot's original fw in the flash.  We have run-from-RAM Magnetite
fw on the Pirelli, but we are able to do it because Pirelli's flash is
huge and we can put our own aftermarket FFS for FC in an area which
the official fw normally doesn't touch, but we don't have the same
luxury on the C155.

* I was able to produce flashable FC Magnetite fw for this target that
works with C155's original bootloader, no need to replace it with a
patched version.

* This morning was the first time I had something to flash into this
C156 phone, previously I only made dumps of the flash, and I discovered
that our fc-loadtool flash writing support on this target was broken:
it turns out that the 8 MiB Intel flash in these phones is like the one
on TI's D-Sample, and needs the same partition quirks.  I made the
simple fix in freecalypso-tools, but it means that the just-released
fc-host-tools-r9 has a bug and I need to put out fc-host-tools-r9a.

Right now we only have the voice pseudo-modem config on this new C155
target, i.e., the phone must be tethered to a host machine running
rvinterf to be controlled via AT commands via fc-shell, the LCD stays
dark, the buttons do nothing.  It should be possible to take the same
proof-of-concept UI implementation we have on the C139 (TI's 84x48 pix
B&W C-Sample UI displayed on the physical 96x64 pixel color LCD, and
absolutely not practically usable) and make it run the same way on
C155 phones as well: the two LCD controllers are different and need
different drivers, but we should be able to steal the C155 LCD driver
from OsmocomBB like we did with the C139 3 years ago.  However, please
keep the following limitations in mind:

* If we port our FC-on-C139 UI-enabled config to the C155, it won't
function any better or be any closer to practically usable: it will
look and feel exactly the same as what we already have on the C139,
with all of the same brokenness.

* The C155 version will actually be less usable than the C139 version
because the C155 version won't be able to ring on incoming calls, only
show an indication on the LCD without making any sound.  The C139 uses
a piezoelectric buzzer for ringing, and the proof-of-concept UI code
we got from TI already knows how to ring it, hence we have a working
ringer on the C139 - in contrast, C155/156 phones have loudspeakers
for ringing instead, that loudspeaker is driven by a Sunplus ringtone
generator chip, and there are no docs for that chip, hence no ability
to make it work with our own fw.

The next steps on my agenda are:

* Put out the needed fc-host-tools-r9a release with the C155 flashing

* Update Magnetite documentation;

* Sync the new fw changes into Selenite (which is specifically designed
to be easy to sync with Magnetite, unlike Citrine) and see how the
gcc-built config fares on this target.

Hasta la Victoria, Siempre,
Mychaela aka The Mother

More information about the Community mailing list