FreeCalypso > hg > freecalypso-sw
comparison doc/Firmware_Status @ 998:7d3f0910aeb2
doc: Firmware_Status written, Freerunner-Howto & Pirelli-Howto updated
| author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
|---|---|
| date | Sat, 05 Mar 2016 20:50:37 +0000 |
| parents | |
| children | 0ee75fdf082f |
comparison
equal
deleted
inserted
replaced
| 997:c7ca69bf84f3 | 998:7d3f0910aeb2 |
|---|---|
| 1 The goal of the gcc-built Calypso GSM firmware project contained in the gsm-fw | |
| 2 directory of this source tree is to replace the Windows-built firmwares which | |
| 3 have been produced in other subprojects under the FreeCalypso umbrella - see | |
| 4 leo2moko and tcs211-c139. Our leo2moko project has produced a production | |
| 5 quality modem fw image for the Openmoko GTA02, while a C139 reflashed with | |
| 6 tcs211-c139 is the first dumbphone in history that can still function as an | |
| 7 untethered phone after having had its fw replaced with an indie one that bears | |
| 8 no relation to the manufacturer's original - but those TCS211-based | |
| 9 Windows-built projects have severe limitations. Much of the firmware code base | |
| 10 in those versions is in the form of unmodifiable binary object libraries, and | |
| 11 the Windows-based configuration and build system is incompatible with the | |
| 12 long-term needs of FreeCalypso development. | |
| 13 | |
| 14 The present FreeCalypso GSM fw project seeks to rectify the situation by | |
| 15 replacing the blob-laden, Windows-built firmware with a version that is built | |
| 16 from full source (no binary blobs) with gcc, with an entirely different | |
| 17 configuration mechanism that actually suits our needs. Because one of the key | |
| 18 goals of this project is to build the firmware from *full source*, the binary | |
| 19 object versions of L1 (GSM Layer 1) and G23M (layers 2&3 of the protocol stack) | |
| 20 featured in our reference TCS211 fw could not be reused. Instead this project | |
| 21 uses versions of L1 and G23M (and some other pieces) that have been lifted from | |
| 22 the firmware for TI's other chipset (LoCosto) and backported to Calypso. | |
| 23 | |
| 24 The current state of the project is that we have made remarkable progress, but | |
| 25 are unfortunately nowhere near the goal of actually being able to replace TCS211 | |
| 26 for practical use. Specifically: | |
| 27 | |
| 28 * Only the bare minimal modem functionality for the voice+SMS subset has been | |
| 29 integrated so far. "Modem" means our fw can only be controlled via AT | |
| 30 commands; no UI code (as in LCD+keypad) has been integrated at all. But it | |
| 31 is not a true modem either as none of the data functions have been integrated | |
| 32 yet: no CSD, no fax, no GPRS. Thus it is an AT-command-controlled voice+SMS | |
| 33 pseudo-modem. | |
| 34 | |
| 35 * The firmware can be built for the following targets: | |
| 36 | |
| 37 Mot C11x/12x | |
| 38 Mot C139/140 | |
| 39 Mot C155/156 | |
| 40 Openmoko GTA01/02 | |
| 41 Pirelli DP-L10 | |
| 42 | |
| 43 All configurations are built from the same source tree. The firmware | |
| 44 functions identically on all supported targets. Because there is no UI code | |
| 45 integrated yet, the LCD stays dark and the buttons do nothing on those target | |
| 46 devices that have such hardware. | |
| 47 | |
| 48 * Most of our supported target devices have only one practically accessible | |
| 49 serial port (UART). Our firmware presents TI's RVTMUX interface on this | |
| 50 UART; the operator is expected to interface to it by running our rvinterf | |
| 51 tools on the host PC/laptop. One of the utilities in the rvinterf suite is | |
| 52 fc-shell; this tool is used to send AT commands to the running firmware, | |
| 53 which is the only way to control its operation. | |
| 54 | |
| 55 * With a valid SIM card inserted and a valid IMEISV configured, a GSM device | |
| 56 running our firmware can successfully connect to live commercial GSM networks | |
| 57 and send and receive SMS. | |
| 58 | |
| 59 * Voice calls are broken: using appropriate AT commands, one can dial outgoing | |
| 60 calls and answer incoming ones, and they connect as they should. However, | |
| 61 the voice audio path is broken: nothing but noise is heard in the earpiece | |
| 62 speaker. We reason that the problem must be somewhere in L1, which has been | |
| 63 backported from LoCosto to Calypso in a rather Frankensteinian manner. | |
| 64 | |
| 65 * Deep sleep is broken and needs to be disabled with AT%SLEEP=2; the breakage | |
| 66 is likewise assumed to be somewhere in L1. | |
| 67 | |
| 68 The two current points of breakage in L1 (broken deep sleep and broken voice | |
| 69 calls) are deemed to be show-stoppers, i.e., we are not going to progress this | |
| 70 work in any other direction until these two are fixed. And we currently see | |
| 71 only two possible ways to fix these L1 issues: | |
| 72 | |
| 73 Option 1: find and obtain another copy of TCS211 that has its L1 component in | |
| 74 source form, or a separate L1-by-itself source that would be compatible with | |
| 75 Calypso DSP ROM 3606 and with the TCS211 fw architecture. | |
| 76 | |
| 77 Option 2: painstakingly reconstruct a TCS211-fitting version of L1 from the | |
| 78 disassembly of the available binary objects, by taking LoCosto L1 sources and | |
| 79 massaging them until they compile into object code that matches our TCS211 | |
| 80 reference. | |
| 81 | |
| 82 Option 1 involves more prayer than actionable work, while Option 2 is currently | |
| 83 being worked on in another subproject of FreeCalypso - see tcs211-l1-reconst. |
