FreeCalypso > hg > fc-selenite
view README @ 150:d43dadd91383
l1_small_asm.S for gcc: same change as in l1_small.c TMS470 version
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 06 Feb 2019 23:28:49 +0000 |
parents | ee67197fd2e5 |
children | 9b49f18d3221 |
line wrap: on
line source
FreeCalypso Selenite is an experimental side branch off the mainline FC Magnetite firmware. The principal changes from Magnetite are: * Only modem functionality is supported. FC Magnetite includes TI's C-Sample and D-Sample demo/prototype UI code and work in progress toward our own FreeCalypso Libre Dumbphone; this code is not included and this functionality is explicitly unsupported in Selenite. * Only the hybrid modem configuration is supported, using the new G23M PS and ACI code from TCS3.2/LoCosto, not any of the legacy configurations that used the blob-laden version from TCS211-20070608. * The old version of Nucleus used in TI's TCS211 program (binary sans source) has been replaced with FreeNucleus by XVilka. OSL (GPF to Nucleus glue layer) is the source-reconstructed version. * The tree layout and the build system are structured in such a way that it is possible to build either with TI's original TMS470 compiler or with gcc. The purpose of this Selenite fw experiment is to see what will happen if we take our full-featured hybrid modem fw as featured in Magnetite and compile it with gcc instead of TI's original TMS470 compiler, which also implies swapping in the new version of Nucleus and an entirely different implementation of all assembly components and linker script magic. The current status is as follows: * When built with the original TMS470 compiler, the present Selenite fw appears to perform no worse than Magnetite hybrid. * It is now possible to compile the full-featured fw with gcc without disabling GPRS (no more crash on boot), but actually using GPRS doesn't work: pppd establishes the point-to-point connection to the network's GGSN and gets an IP address, but then trying to ping through this established connection causes the fw to crash. * Voice, SMS and CSD appear to work in the gcc-built version, but this firmware is not as stable as Magnetite hybrid: I saw some occasional glitches which I did not investigate further. Compared to FC Citrine (our previous attempt at gcc-built fw), the present FC Selenite firmware built with gcc already offers the following: * CSD support; * Audio services: playing beeps and melodies through the DSP; * Newer code: FC Selenite branched off Magnetite in 2018-07 and is being periodically synced with new Magnetite developments, whereas FC Citrine has been unmaintained since 2016-10. Because FC Selenite gcc already does everything that FC Citrine could do and more, and is no less free, FC Citrine is now officially fully retired. As the next step, someone needs to do the work of tracking down and debugging all of the issues seen in the gcc-built version, and make it work as well as the original TMS470-built configuration. However, I (Mother Mychaela) am not currently allocating my time toward that work because I see other directions within the greater FreeCalypso family of projects as being more important. Specifically, I see the following as much higher priorities compared to gcc-built firmware: * Getting our FCDEV3B V2 boards made to prove my proposed fix for the sleep mode bug, and if they work as expected, we'll need to make more FreeCalypso modem hw in various form factors and put that hw into the hands of end users. Software or firmware without hardware to run it on is useless no matter how good or how free/libre it is, hence it makes no sense to me to worry whether our fw is built with gcc or with TI's TMS470 compiler until the hardware that's needed to run it is made in greater volume and placed into the hands of people who would appreciate it. * Getting the digital voice channel over MCSI working, which is a prerequisite before we can repackage our FreeCalypso modem into a module form factor which could then be marketed to communities like Neo900 and Librem 5 as a drop-in replacement for the 100% closed and proprietary modem modules they use currently. * Building our long-planned FreeCalypso Libre Dumbphone hardware, so we can have a complete phone without needing someone else like Neo900 or Librem 5 or ZeroPhone to provide an application processor front-end to our modem. Anyone else who feels that whipping the gcc-built fw version into shape should be a higher priority has two options: either do the work themselves (the code is free for everyone), or pay Falconia Partners LLC to elevate the priority of this gcc-built fw work.