About | Products | Software | Community | Contribute | IOP

Calypso GSM firmware offerings

Right now we have the following actively or semi-actively maintained FreeCalypso GSM MS firmware source trees:

Tourmaline

This firmware source tree (started in 2020) is where current active development is taking place. Modem functionality is now deemed to be stable and finished, not in need of any more development, instead our current active work is in the area of handset UI functionality.

Magnetite

This firmware source tree was started in 2016, forming the beginning of our current approach to FreeCalypso firmware. It is the progenitor to both Selenite and Tourmaline firmwares. Now that FC Tourmaline has become our new active development tree, there is much less activity in Magnetite, but the Mother's vision is to keep Magnetite as stable modem firmware for a while — if Tourmaline is viewed as HEAD, then Magnetite should be viewed as stable.

Selenite

This firmware has been created in 2018 as an experiment, and it is not currently recommended for production use. The experimental feature of Selenite firmware is transition to compiling with gcc without any blobs.

Our Magnetite and Tourmaline firmwares are built with TI's original TMS470 compiler under Wine, and their respective standard configurations use the original blob version of GPF OSL and OSX glue layers (very tiny, only 14992 bytes of code) for stability, as opposed to the reconstructed C version (reconstructed from disassembly) which is not deemed ready for production use in its current state.

At some point it would certainly be desirable to eliminate the last remaining tiny blobs from our firmware and to move away from TI's compiler that only exists as Windows binaries sans source. Right now such transition is seen as a very low priority relative to other project needs, but a preliminary investigation was made in this direction, and the result is Selenite firmware.

This firmware can be built either with TI's original TMS470 compiler or with gcc and contains no blobs (100% compilation from source), and it uses the reconstructed C version of GPF OSL and OSX glue components. This reconstructed C version of OSL and OSX is not production quality, and the transition to gcc introduces further destabilization, thus this experimental firmware is not recommended for practical use.

All of the above firmwares closely follow the architecture of TI's original TCS211 firmware for the Calypso, and support all of the original functionality: voice, SMS, CSD, fax, GPRS and advanced audio features. Additional code layers for handset UI functionality are included in Magnetite and Tourmaline, and are actively worked on in the latter.

Our primary hardware targets are FreeCalypso modems (FCDEV3B, Tango and Openmoko), as well as our Luna handset UI development platform. Historical TI development boards (D-Sample and Leonardo) are supported to a limited extent in Magnetite, and all of our firmwares still have the same limited support for alien Calypso targets (Motorola C1xx and Pirelli DP-L10) which we've always had.

Our ancient Citrine firmware has been fully retired and is kept around only for history preservation.

Starting sources

Our Calypso GSM firmware works listed above are based on the following 4 TI source leaks/finds, in the chronological order of discovery or liberation: TSM30, LoCosto Peek/FGW, MV100 and TCS211 from Sotovik.

In the order of importance, TCS211 from Sotovik has been the most essential piece (the foundation of our work), followed by the LoCosto source from Peek/FGW. The MV100 source fragments have helped fill a few blanks, and we have not taken any code at all from the ancient and heavily mutilated TSM30 source, beyond a little bit of aid in the reconstruction of the TCS211 version of L1. (We have reconstructed the latter by starting with the LoCosto version and massaging it until it compiles into an equivalent of TCS211 binary objects, sometimes looking at the TSM30 version for comparison.)

FreeCalypso host tools

We have developed an extensive suite of host tools for loading our own firmware into Calypso devices, for breaking into locked-down Mot C1xx specimen, for interpreting debug traces emitted by various firmwares, for interacting with running firmwares on Calypso targets (both our own and some alien ones), for manipulating device flash file systems and so forth. These tools run under Unix/Linux, and are 100% our own original work.

The current development version of our FC host tools can be found in the freecalypso-tools Hg repository; released versions can be found in our main FTP area.