FreeCalypso > hg > fc-selenite
view README @ 212:7f3266e247d6
audio mode load: gracefully handle mode files of wrong AEC version
Irrespective of which AEC policy we adopt for FC Selenite (keep
L1_NEW_AEC disabled like in Magnetite or enable it like in Tourmaline),
we MUST gracefully handle the case of wrong AEC version on audio mode
load: disable AEC instead of loading garbage. Therefore, we apply
the same change to src/cs/services/audio/audio_mode_load.c as we made
in Tourmaline and Magnetite last year.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 31 Oct 2022 00:31:30 +0000 |
parents | d9926aabf13f |
children |
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. * Only the "new" Calypso+RF chipset is supported, i.e., Calypso C035, DSP ROM version 36, Rita RF - no support for historical Calypso silicon versions or older RF chips. * 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 willing to work in that direction until and unless we recover some original authentic versions of os_???.c and osx.c modules - the reconstructions from 2014 which are used in the present FC Selenite experimental source tree (same as Citrine) aren't good enough.