FreeCalypso > hg > freecalypso-sw
comparison README @ 700:2913c4fdd34a
top level README: describe the project at a higher level
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Thu, 02 Oct 2014 00:06:50 +0000 |
parents | 29dae53ad969 |
children | 615fb8847d3f |
comparison
equal
deleted
inserted
replaced
699:64745cdedf15 | 700:2913c4fdd34a |
---|---|
1 You are looking at the top level of the freecalypso-sw source code tree. The | 1 What this project is about |
2 primary aim of this project is to produce our own full-source GSM firmware that | 2 ========================== |
3 would fully operate the TI Calypso-based GSM phones and modems of interest to | 3 |
4 us; this primary subproject is being worked on in the gsm-fw subtree. While | 4 Welcome to FreeCalypso. The goal is this project is to produce a Free Dumb |
5 that project is progressing very slowly, the associated side projects have | 5 Phone - not yet another smartphone (free or otherwise), but a "dumbphone", |
6 already produced some useful tools for operating on these GSM devices; see | 6 i.e., a traditional cellular telephone handset just like we all had and enjoyed |
7 README.hosttools for the details. | 7 back in the 1990s - a device with just enough hardware resources to make and |
8 receive traditional phone calls on a standard GSM network, and not one iota | |
9 more. No power-hungry application processors, just have one baseband processor | |
10 that does everything from running the GSM protocol stack to responding to the | |
11 user pressing buttons on the traditional numeric dialpad. No big screens with | |
12 power-hungry backlights, just a little LCD to display who is calling and the | |
13 current date and time - I use my cellphone as a pocketwatch too, so my wrists | |
14 stay free. | |
15 | |
16 But we seek to build a "dumbphone" with one VERY SPECIAL twist: namely, | |
17 operational firmware for the phone (which includes everything from the UI down | |
18 to GSM Layer 1, as there is no separate baseband processor) available to every | |
19 end user in the form of full source code. Hence it will be a Free Dumb Phone. | |
20 We seek to achieve this "special twist" by doing the following: | |
21 | |
22 * We'll use the ancient TI Calypso chipset for our Free Dumb Phone instead of | |
23 whatever is the current offering from MTK or other cellular chipset company | |
24 du jour. TI stopped making these chips ages ago, and got out of the cellular | |
25 baseband chipset business altogether, but we can still source these chips in | |
26 5-digit quantities on the Chinese surplus market. | |
27 | |
28 * Because we'll be using a baseband chipset from the surplus market made by a | |
29 company that long bit the dust, we will not be getting any official firmware | |
30 releases from any vendor. Therefore, there is no one to sign any NDAs with, | |
31 and there is no one to tell us what we can or cannot do with the firmware as | |
32 we won't be getting any official firmware in the first place. | |
33 | |
34 * Our Free Dumb Phone will run free firmware which we put together ourselves. | |
35 When TI completely exited the cellular baseband chipset business, closed all | |
36 their offices involved with that work and laid off all of the responsible | |
37 employees, they broke their firmware into pieces and threw the pieces in the | |
38 trash. We have picked these shattered pieces out of the trash dumpster, and | |
39 like anything else found in a dumpster, these abandonware pieces are | |
40 effectively in the public domain, and any person in the world is free to do | |
41 with them as she pleases. | |
42 | |
43 The "shattered pieces" aspect of the firmware needs to be re-emphasized. TI's | |
44 complete firmware suite for their Calypso chipset, also known as TCS2.1.1 or | |
45 TCS211, has *not* survived the disbanding of its maker company in an intact | |
46 form. Shattered bits and pieces are all we've been able to gather through our | |
47 dumpster diving efforts. | |
48 | |
49 Reconstructing fully-functional firmware for the Calypso from the available | |
50 broken pieces is where the bulk of the hard work in our project is. There is | |
51 another project (bb.osmocom.org) seeking to produce similarly-functional fw by | |
52 rewriting it completely from scratch with a totally different architecture, but | |
53 the lead developer of the present FreeCalypso project has chosen the | |
54 reconstruction approach as more reliable and more likely to produce the desired | |
55 result. | |
56 | |
57 Hardware vs. software | |
58 ===================== | |
59 | |
60 Our goal is to produce a complete and usable cellphone product. Such a product | |
61 requires both hardware and software (firmware). We need to produce both. We | |
62 could do the hw and fw subprojects in either order, but we have chosen to work | |
63 on the firmware first. By doing the fw first, we will get to exercise it on | |
64 some existing phones that use the same Calypso chipset; doing the hw ahead of | |
65 the fw would give us a fancy paperweight. | |
66 | |
67 Current status | |
68 ============== | |
69 | |
70 We are currently using the Calypso GSM modem in the Openmoko GTA02 smartphone | |
71 as our bring-up vehicle. We have our own firmware suite, compiled 100% from | |
72 source with gcc (no blobs or proprietary compiler toolchains!), but we have not | |
73 yet reintegrated the full GSM protocol stack in this project. (The leo2moko | |
74 side project doesn't count.) But we are getting close: we've got the | |
75 FreeNucleus RTOS by XVilka as a working replacement for the binary-only version | |
76 of Nucleus used by TI, and we've got the following parts of TI's original | |
77 firmware suite integrated and working: | |
78 | |
79 * RiViera framework and everything that runs under it, including TI's original | |
80 FFS (flash file system), RVTMUX serial channel and ETM (Enhanced Test Mode). | |
81 This part has been found in a TCS211 semi-src package. | |
82 | |
83 * GPF (Condat's protocol stack framework) - TI used it mostly as binary libs, | |
84 even internally, and we had to reconstruct it from pieces. Some parts of GPF | |
85 had to be reconstructed from disassembly. But it works beatifully now. | |
86 | |
87 * GSM Layer 1 code - we took the version from the LoCosto source (no official | |
88 Calypso L1 source could be found) and backported it from LoCosto to Calypso. | |
89 | |
90 We are now working on reintegrating the rest of the GSM protocol stack code, | |
91 also taking it from the LoCosto source (the only available full source) and | |
92 reintegrating it to build in our FreeCalypso environment, targeting Calypso | |
93 instead of LoCosto. | |
94 | |
95 We have also produced some host tools for loading firmware into Calypso GSM | |
96 devices, for communicating with running firmwares over the RVTMUX interface, | |
97 and for manipulating TI's flash file system. See README.hosttools for the | |
98 details. | |
99 | |
100 Source tree | |
101 =========== | |
8 | 102 |
9 The subtrees of this source tree are as follows: | 103 The subtrees of this source tree are as follows: |
10 | 104 |
11 gsm-fw This tree contains the early beginnings of my (Michael | 105 gsm-fw The main FreeCalypso GSM firmware work, see above. |
12 Spacefalcon's) attempt to recreate TI's GSM firmware suite for | |
13 modems and basic phones, consisting of Nucleus RTOS, RiViera | |
14 and GPF frameworks, TI's BSP/driver and L1 code, Condat G23 | |
15 GSM/GPRS protocol stack, AT command interpreter and UI layers. | |
16 | |
17 Integrated and working so far: | |
18 * Layer 1 (gtamodem target only): builds and runs, lightly | |
19 tested, need the rest of the GSM protocol stack for real | |
20 testing. | |
21 * RTOS foundation (all targets): one can exercise RVT, ETM, FFS | |
22 and GPF; all work beautifully. | |
23 | |
24 Next steps: | |
25 * Integrate Layers 2&3 (Condat G23); | |
26 * Rework the tpudrv part of L1 to work on targets other than | |
27 gtamodem, i.e., Pirelli DP-L10 and Mot C1xx. | |
28 | 106 |
29 target-utils This tree contains code that runs on Calypso targets, but is | 107 target-utils This tree contains code that runs on Calypso targets, but is |
30 not regular firmware (gsm-fw) or a part thereof. The two key | 108 not regular firmware (gsm-fw) or a part thereof. The two key |
31 components built in this tree are loadagent (needed for all | 109 components built in this tree are loadagent (needed for all |
32 targets) and compalstage (for Compal phones only), which need | 110 targets) and compalstage (for Compal phones only), which need |