FreeCalypso > hg > fc-magnetite
annotate README @ 383:43dbedde9d80
doc/C1xx-Howto written
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sun, 14 Jan 2018 20:45:51 +0000 | 
| parents | 9399a83cb394 | 
| children | 56ac93768594 | 
| rev | line source | 
|---|---|
| 
94
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 FreeCalypso Magnetite firmware project | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 ====================================== | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 | 
| 
373
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
4 As of A.D. 2018, FC Magnetite is the primary official Calypso firmware source | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
5 tree for the FreeCalypso family of projects. This maintained and evolving | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
6 source can be built in many different configurations for several different | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
7 hardware targets, and is currently used in the following ways: | 
| 
94
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 | 
| 
373
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
9 * The official production firmwares for our fully supported GSM+GPRS modem | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
10 products (FCDEV3B and the modem part of Openmoko devices) are built from | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
11 this source tree. See doc/Modem-configs for this mode of usage. | 
| 
94
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 | 
| 
373
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
13 * The work in progress toward a future complete FreeCalypso phone handset | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
14 (also known as a Libre Dumbphone) is being done in this source tree. | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
15 See doc/Handset-goal for more info about this project direction. | 
| 
94
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 | 
| 
373
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
17 * One can play with FreeCalypso and get a taste for it using certain hardware | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
18 that used to be readily available and which most people in the phone hacking | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
19 scene already have: Motorola C139 and Pirelli DP-L10. Firmware images of the | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
20 "hacking toy" sort can be built for both of these models from the present | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
21 source tree, and one can exercise most of the functions and capabilities of | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
22 FreeCalypso (with the notable exception of CSD and GPRS) on this historical | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
23 but available-to-most-people hardware. See doc/C139-Howto, doc/Pirelli-Howto | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
24 and doc/Voice-pseudo-modem for more information. | 
| 
94
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 Functionality | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 ============= | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 TI's GSM mobile station firmware architecture supports two ways in which the | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 GSM device may be controlled: via AT commands from an external host and/or via | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 a local UI on devices with LCD & keypad hardware. (I said "and/or" because the | 
| 
218
 
75ea63a3fce5
README updated for the current status of the project
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
96 
diff
changeset
 | 
32 two mechanisms can coexist.) The code we got from TI (TCS211) is very solid | 
| 
 
75ea63a3fce5
README updated for the current status of the project
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
96 
diff
changeset
 | 
33 and mature in the modem configuration (control via AT commands only, no UI, no | 
| 
 
75ea63a3fce5
README updated for the current status of the project
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
96 
diff
changeset
 | 
34 battery management, no traditional handset on/off control), but the additional | 
| 
373
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
35 code layers that are needed for handset products but not for modems came in a | 
| 
218
 
75ea63a3fce5
README updated for the current status of the project
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
96 
diff
changeset
 | 
36 very rough "proof of concept" condition, nowhere close to a usable product. | 
| 
 
75ea63a3fce5
README updated for the current status of the project
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
96 
diff
changeset
 | 
37 | 
| 
373
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
38 In FC Magnetite we further maintain and support the solid code base we got for | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
39 the modem functionality, and we are also working to improve the support for | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
40 handset products and bring it into a practically usable state. We have already | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
41 implemented an entirely new battery charging and discharge monitoring driver | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
42 that actually works on our target hw (of the two we got from TI, one was | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
43 bitrotten and the other was designed for charging hardware that is quite | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
44 different from what we are working with), and we shall hopefully start working | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
45 on the UI soon - see doc/Handset-goal for more info. | 
| 
94
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 | 
| 
373
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
47 Both TI's original modem fw (TCS211) and our recreation thereof in this | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
48 Magnetite project support not only voice calls and SMS, but also CSD, fax and | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
49 GPRS. This advanced functionality is fully supported on our own GSM MS | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
50 development board (FCDEV3B), where both Calypso UARTs are presented directly to | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
51 the developer, as well as on the embedded Calypso modem in Openmoko GTA01/02 | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
52 smartphones, where the AT command channel with CSD, fax and GPRS capabilities | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
53 is connected to the phone's application processor. | 
| 
94
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 Build system | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 ============ | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 Even though FC Magnetite is essentially unchanged TCS211 code base and builds | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 using TI's proprietary TMS470 compiler under Wine, the build system is entirely | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 new. TI's TCS211 build system, called BuSyB, works by way of a Java tool | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 generating a customized makefile for each desired build configuration, based on | 
| 
96
 
9fb9f896bd77
README: grammar fix
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
94 
diff
changeset
 | 
62 lots of magic contained in a big repository of XML files. There are a bunch of | 
| 
 
9fb9f896bd77
README: grammar fix
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
94 
diff
changeset
 | 
63 Perl scripts involved as well. The Java tool that does the heavy lifting exists | 
| 
94
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 only as compiled Java bytecode sans source, and the surrounding Perl scripts | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 aren't very understandable either. And the whole thing thoroughly assumes a | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 Windows environment (drive letters, backslashes, case-insensitive file system) | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 throughout. As a result, when working with TCS211 fw with its original build | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 system, we had to treat these BuSyB-generated makefiles almost as being blobs in | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 themselves: regenerating a makefile from XML magic required major effort, there | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 were some bugs in the makefile generation which we couldn't fix and thus we had | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 to edit the makefiles manually after each regeneration - it was an utter mess, | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 and absolutely not an acceptable way to build a forward-looking, community- | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 serving project. | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 In FC Magnetite I have recreated the relevant parts of the TCS211 build system, | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 using Bourne shell magic instead of Java and XML. Just like TI's BuSyB, ours | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 is a makefile generation system: in order to compile the firmware in a | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 particular desired configuration, you run a shell script to select the config | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 you would like. This shell script will create a dedicated build directory tree | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 to fully contain this build, and populate it with generated Makefiles and some | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 other bits - then you go into the just-created build directory and run make | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 there. The source and build trees are thus cleanly separated. See | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 doc/Compiling for detailed instructions. | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 Another key difference from our previous TCS211-based firmware offerings is that | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 even though we still have to run TI's compiler binaries under Wine, the Wine | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 invokation has been moved from the top (root) of the build process to the | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 bottom leaves. With our previous TCS211-based works you would run Wine at the | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 top, and then the entire build process would proceed in the Windows environment, | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 using Windows versions of make and other nonsense. Not so in FC Magnetite: | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 in this firmware project all shell scripts, Makefiles, Perl scripts and other | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 build system accessories run at the native Unix level, and Wine is only invoked | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 at the lowest level by individual tool wrappers: for example, TI's compiler | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 binary cl470.exe is encapsulated in a Unix shell script called cl470 that | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 invokes Wine to run the Windows binary, presenting the illusion of a native | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 Unix tool to all upper levels. | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 As yet another defenestration measure, all source files are checked into this | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 tree with Unix line endings. | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 | 
| 
373
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
101 Two versions of the G23M protocol stack | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
102 ======================================= | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
103 | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
104 A major component of all functional firmware configurations is the mass of code | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
105 that implements layers 2 and 3 of the GSM+GPRS protocol stack, called G23M. In | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
106 FC Magnetite we have the option of using one of two different versions of this | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
107 key firmware component: | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
108 | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
109 * The original G23M version from Openmoko: this version is believed to be very | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
110 stable because it has been used (successfully to the best of our knowledge) | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
111 by Openmoko, and it came from TI's TCS211 program that officially targeted | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
112 the Calypso chipset - but it exists only as binary object libraries with no | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
113 corresponding source. The lack of source means no ability to change the | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
114 feature configuration (what is enabled and what is disabled), very difficult | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
115 to debug if something does go wrong - all of the usual problems of software | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
116 without source. | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
117 | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
118 * A newer version from TI's TCS3/LoCosto program. This version came to us in | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
119 the form of full C source, and because this fw component is chipset- | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
120 independent (unlike L1), we have successfully produced a TCS2/TCS3 hybrid in | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
121 which the new G23M code from TCS3.2 is grafted onto the chipsetsw foundation | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
122 from TCS211, which we have reconstructed into full C source form as well. | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
123 | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
124 Each of the two G23M PS versions also has its own version of the Application | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
125 Control Interface (ACI) layer to go with it, which we call aci2 and aci3 - | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
126 except that in the case of ACI, we have the full source for both versions. | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
127 | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
128 The new TCS2/TCS3 hybrid config is the way forward, as our goal is to have no | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
129 blobs in our firmware - having the full source is a prerequisite for maintaining | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
130 a software product. FC Magnetite supports building both configurations in order | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
131 to facilitate the transition, and as of this writing, we still need to add a few | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
132 bits to the new version of ACI in order to achieve 100% feature parity with | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
133 Openmoko. | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
134 | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
135 Other blobs | 
| 
94
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 =========== | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
137 | 
| 
373
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
138 The TCS2/TCS3 hybrid firmware is built almost entirely from source; the only | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
139 components which are linked in the form of prebuilt libraries are GPF, Nucleus | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
140 and the TMS470 compiler's equivalent of libc/libgcc. It needs to be noted that | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
141 these components are so stable and configuration-independent that they were | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
142 used mostly in prebuilt library form even inside TI. In the case of GPF we've | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
143 got the corresponding source for most of the modules within those libs; for the | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
144 few modules for which the original source has been lost, we've already done a | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
145 rough first-draft reconstruction as part of our previous gcc-built GSM fw | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
146 efforts, and we only need to polish this reconstruction in order to have | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
147 deblobbed GPF in our mainline production fw. In the case of Nucleus we likewise | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
148 have another version of it in full source form which has been proven good in | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
149 other FreeCalypso firmware projects. | 
| 
94
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 | 
| 
373
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
151 The planned successor to FC Magnetite (tentative planned name Selenite) will | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
152 use the hybrid config for the G23M PS, deblobbed GPF and the source-enabled | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
153 version of Nucleus, resulting in blob-free firmware except for the proprietary | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
154 TMS470 compiler and its equivalent of libc/libgcc. Transition to building with | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
155 gcc (like in FreeCalypso Citrine) will follow afterward, completely exiting the | 
| 
 
9399a83cb394
first round of documentation updates for 2018
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
254 
diff
changeset
 | 
156 land of blobs and proprietary build tools. | 
| 
94
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 Further reading | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
159 =============== | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
161 For various instructions and notes specific to this FreeCalypso Magnetite | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 firmware, look in the doc directory. For more information about the overall | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
163 FreeCalypso project and our hardware building aspirations, go to our website: | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
164 | 
| 
 
596d86109e44
initial round of documentation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 https://www.freecalypso.org/ | 
