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.