FreeCalypso > hg > freecalypso-citrine
comparison doc/Current_Status @ 28:cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Sun, 12 Jun 2016 18:28:35 +0000 |
| parents | |
| children | 23dbd942aa56 |
comparison
equal
deleted
inserted
replaced
| 27:3ecd6054a7f7 | 28:cb00b90edaff |
|---|---|
| 1 The goal of the Citrine firmware project is to replace the Windows-built | |
| 2 firmwares which have been produced in other subprojects under the FreeCalypso | |
| 3 umbrella - see leo2moko and tcs211-c139. Our leo2moko project has produced a | |
| 4 production quality modem fw image for the Openmoko GTA02, while a C139 reflashed | |
| 5 with tcs211-c139 is the first dumbphone in history that can still function as an | |
| 6 untethered phone after having had its fw replaced with an indie one that bears | |
| 7 no relation to the manufacturer's original - but those TCS211-based | |
| 8 Windows-built projects have severe limitations. Much of the firmware code base | |
| 9 in those versions is in the form of unmodifiable binary object libraries, and | |
| 10 the Windows-based configuration and build system is incompatible with the | |
| 11 long-term needs of FreeCalypso development. | |
| 12 | |
| 13 The present fw project (FreeCalypso Citrine) seeks to rectify the situation by | |
| 14 replacing the blob-laden, Windows-built firmware with a version that is built | |
| 15 from full source (no binary blobs) with gcc, with an entirely different | |
| 16 configuration mechanism that actually suits our needs. Because one of the key | |
| 17 goals of this project is to build the firmware from *full source*, the binary | |
| 18 object versions of L1 (GSM Layer 1) and G23M (layers 2&3 of the protocol stack) | |
| 19 featured in our reference TCS211 fw could not be reused. Instead this project | |
| 20 uses versions of L1 and G23M (and some other pieces) that have been lifted from | |
| 21 the firmware for TI's other chipset (LoCosto) and backported to Calypso. | |
| 22 | |
| 23 The current state of the project is that we have made remarkable progress, but | |
| 24 what we have right now is still not a satisfactory replacement for TCS211. | |
| 25 Specifically: | |
| 26 | |
| 27 * Only the bare minimal modem functionality for the voice+SMS subset has been | |
| 28 integrated so far. "Modem" means our fw can only be controlled via AT | |
| 29 commands; no UI code (as in LCD+keypad) has been integrated at all. But it | |
| 30 is not a true modem either as none of the data functions have been integrated | |
| 31 yet: no CSD, no fax, no GPRS. Thus it is an AT-command-controlled voice+SMS | |
| 32 pseudo-modem. | |
| 33 | |
| 34 * The firmware can be built for the following targets: | |
| 35 | |
| 36 Mot C11x/12x | |
| 37 Mot C139/140 | |
| 38 Mot C155/156 | |
| 39 Openmoko GTA01/02 | |
| 40 Pirelli DP-L10 | |
| 41 | |
| 42 All configurations are built from the same source tree. The firmware | |
| 43 functions identically on all supported targets. Because there is no UI code | |
| 44 integrated yet, the LCD stays dark and the buttons do nothing on those target | |
| 45 devices that have such hardware. | |
| 46 | |
| 47 * Most of our supported target devices have only one practically accessible | |
| 48 serial port (UART). Our firmware presents TI's RVTMUX interface on this | |
| 49 UART; the operator is expected to interface to it by running our rvinterf | |
| 50 tools on the host PC/laptop. One of the utilities in the rvinterf suite is | |
| 51 fc-shell; this tool is used to send AT commands to the running firmware, | |
| 52 which is the only way to control its operation. | |
| 53 | |
| 54 * With a valid SIM card inserted and a valid IMEISV configured, a GSM device | |
| 55 running our firmware can successfully connect to live commercial GSM networks, | |
| 56 make and receive voice calls, and send and receive SMS. | |
| 57 | |
| 58 * In the case of voice calls, the call downlink audio is routed to the phone's | |
| 59 earpiece speaker and the phone's microphone serves as the source for the | |
| 60 uplink audio, i.e., even though the LCD and keypad are dead with our fw, the | |
| 61 earpiece and mic continue to function as in a conventional phone. FR and EFR | |
| 62 codecs work correctly (EFR was broken until recently), but AMR does not work | |
| 63 with this fw for some not-yet-understood reason, hence by default our fw | |
| 64 currently advertises to the GSM network that the MS only supports FR, HR and | |
| 65 EFR codecs. | |
| 66 | |
| 67 There is also a highly experimental and minimally tested alternative mode | |
| 68 of operation in which the traffic channel carrying FR codec bits (260 bits | |
| 69 every 20 ms; it is not known whether or not this feature will also work with | |
| 70 EFR) is rerouted away from the internal vocoder to the external host, | |
| 71 such that you can receive the downlink voice bits digitally instead of | |
| 72 listening to them in the earpiece speaker, and you can substitute your own | |
| 73 uplink bits instead of the microphone-fed internal vocoder output. See the | |
| 74 TCH-special-feature write-up for more information. | |
| 75 | |
| 76 There are also two known bugs which manifest only intermittently, but the | |
| 77 misbehaviour does occur often enough that you will likely encounter it: | |
| 78 | |
| 79 * Sometimes something gets messed up in the voice uplink path such that the | |
| 80 downlink audio sounds just fine in the earpiece speaker of the phone running | |
| 81 FC Citrine, but the far end of the call hears only silence. Other times the | |
| 82 voice audio passes just fine in both directions. It is not currently | |
| 83 understood what factors determine whether it will work or not. | |
| 84 | |
| 85 * Sometimes the L1A task in the firmware (see the Firmware_Architecture | |
| 86 write-up) appears to stop running; the externally visible behaviour is that | |
| 87 the debug trace output from L1 suddenly stops while the rest of the firmware | |
| 88 keeps running. GSM firmware without working L1 is unusable, hence when the | |
| 89 fw gets into this state, the only remedy is a power cycle reboot. It is not | |
| 90 currently understood exactly what happens and under what conditions. | |
| 91 | |
| 92 Going forward, the current plan is to wait until our FCDEV3B hardware gets built | |
| 93 before any attempts will be made to go after the above-listed bugs. I, the | |
| 94 principal developer, am sick and tired of limping along with Compal, Pirelli | |
| 95 and Openmoko hardware when we have a design for our own FreeCalypso development | |
| 96 board which, when built, will be a much more convenient platform for firmware | |
| 97 development. | |
| 98 | |
| 99 Target-specific usage instructions | |
| 100 ================================== | |
| 101 | |
| 102 If you would like to play with our work-in-progress firmware and check it out | |
| 103 for yourself, see the following target-specific instructions: | |
| 104 | |
| 105 Mot C1xx (Compal) Compal-Howto | |
| 106 Openmoko GTA01/02 Freerunner-Howto | |
| 107 Pirelli DP-L10 Pirelli-Howto |
