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