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 |
