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