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