FreeCalypso > hg > fc-magnetite
annotate README @ 251:6c594ce434f8
doc/Compiling: update for the FCDEV3B and for fc-host-tools-r5
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 03 Aug 2017 05:20:46 +0000 |
parents | b05dba024f95 |
children | cae495752cf7 |
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 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 This source tree contains yet another firmware offering created under the |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 FreeCalypso umbrella. The key qualities of this firmware offering are: |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 Negatives: |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 * Builds with TI's proprietary TMS470 compiler and thus requires Wine; |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 * Some of the fw components are still in the form of binary blobs - |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 but see below on the deblobbing progress. |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 Positives: |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 * Can be built to run on Motorola C139, Openmoko GTA02 and Pirelli DP-L10 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 targets, as well as the to-be-built FCDEV3B, all from the same source tree; |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 * Works as solidly as the TCS211 "golden" reference from TI, on all of the |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 supported targets - deep sleep works, voice calls work in all codec modes |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 including AMR, the DSP dynamic download mechanism does its magic, the call |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 audio passes reliably in both directions. |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 The present FC Magnetite firmware is built on the principle of starting with |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 the known working TCS211 code base, without any major restructuring, and making |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 small incremental evolutionary changes, testing at every step to ensure that |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 nothing breaks. It is the direct opposite of the "rebuild from the ground up" |
218
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
27 approach taken with our previous Citrine firmware aka "gsm-fw". |
94
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 Functionality |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 ============= |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 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
|
33 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
|
34 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
|
35 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
|
36 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
|
37 battery management, no traditional handset on/off control), but the additional |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
38 code layers that are needed for handset products but not for modems are in a |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
39 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
|
40 |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
41 The same situation currently exists in FreeCalypso Magnetite. As explained |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
42 below in the Build system section, a key feature of FC Magnetite is that many |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
43 different firmware configurations can be built from the same source tree. One |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
44 of the configuration choices is that you can build the fw either with or without |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
45 the phone UI layers. The work we have done earlier in the tcs211-c139 side |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
46 project (late 2015) has been integrated into Magnetite, properly conditionalized |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
47 so that TI's original configuration is fully preserved when the target != c139. |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
48 However, if you build the UI-enabled configuration for any target other than |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
49 Mot C139, it will compile, but it won't do anything useful: it will try to |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
50 display TI's 176x220 pixel color UI on the D-Sample LCD on Calypso chip select |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
51 nCS3, but this hardware doesn't exist on any of our supported targets. (The |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
52 Pirelli in particular has flash on that chip select instead, so it may interfere |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
53 with FFS operation.) |
94
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 |
218
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
55 Further work on the handset firmware configuration (UI, battery management and |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
56 other currently missing functionality required for a usable phone) will have to |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
57 wait until we build our own Handset Motherboard Prototype (HSMBP) with a 176x220 |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
58 pixel 16-bit color LCD, replicating TI's D-Sample - I personally am not too |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
59 interested in doing this handset fw work on the very crippled Mot C139 or on |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
60 the Pirelli with its own host of issues, although others in the community are |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
61 more than welcome to take a shot at it if someone is interested. |
94
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 |
218
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
63 Until then, the primary current focus of the FC Magnetite project is the |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
64 AT-command-controlled modem configuration. Both TI's original modem fw (TCS211) |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
65 and our recreation thereof in this Magnetite project support not only voice |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
66 calls and SMS, but also CSD, fax and GPRS. However, before we can really |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
67 exercise this functionality, we need to first build our long-overdue FCDEV3B |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
68 hardware. TI's standard fw architecture (kept unchanged in FC Magnetite) |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
69 assumes the availability of two UARTs: the modem UART presents a classic AT |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
70 command interface which includes the CSD, fax and GPRS functionality, whereas |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
71 the 2nd IrDA UART carries the debug trace channel (RVTMUX) essential for |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
72 developers. However, only one UART is practically accessible on Mot C139 and |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
73 Pirelli DP-L10 targets; because we could not give up RVTMUX, we gave up the |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
74 classic AT command UART channel instead. We have implemented a mechanism for |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
75 passing AT commands over RVTMUX, but this mechanism works only for the voice |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
76 and SMS AT commands, not CSD, fax or GPRS. Therefore, the latter functionality |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
77 remains inaccessible until we build our own proper Calypso board with both |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
78 UARTs brought out. |
94
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 Build system |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 ============ |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 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
|
84 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
|
85 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
|
86 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
|
87 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
|
88 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
|
89 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
|
90 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
|
91 Windows environment (drive letters, backslashes, case-insensitive file system) |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 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
|
93 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
|
94 themselves: regenerating a makefile from XML magic required major effort, there |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 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
|
96 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
|
97 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
|
98 serving project. |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 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
|
101 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
|
102 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
|
103 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
|
104 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
|
105 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
|
106 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
|
107 there. The source and build trees are thus cleanly separated. See |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 doc/Compiling for detailed instructions. |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 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
|
111 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
|
112 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
|
113 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
|
114 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
|
115 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
|
116 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
|
117 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
|
118 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
|
119 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
|
120 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
|
121 Unix tool to all upper levels. |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 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
|
124 tree with Unix line endings. |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 Blob status |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 =========== |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 A long-term FreeCalypso goal is to have our phone/modem firmware rebuild fully |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 from source without any blobs, but this goal has not been achieved yet. While |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 we do have what *seems* to be a suitable replacement source (or feasible ability |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 to reconstruct such) for every piece of TCS211 fw that came in binary-only form, |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 actually making this replacement without breaking functionality is a very |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 non-trivial endeavor. Our previous attempt to rebuild the firmware from the |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 ground up, using source pieces lifted from different available leaks and |
218
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
136 building with gcc so that no TMS470 COFF blobs could be used - see FreeCalypso |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
137 Citrine - has produced only a very limited subset of the original functionality, |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
138 and until very recently even the most basic function of voice calls did not work |
75ea63a3fce5
README updated for the current status of the project
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
139 reliably. |
94
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 Instead the new FreeCalypso firmware approach implemented in FC Magnetite is to |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 approach the blob-free goal incrementally. The new Magnetite build system is |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 specifically designed to enable the transition from the use of blobs to |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 recompilation from source to be made with very fine granularity, down to the |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 level of individual object modules within libs if necessary. We tackle one |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 binary-only component at a time, either reconstructing the missing source from |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 disassembly or adapting the source from a different version as works best in |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 each individual case, and we make a test build of the firmware using the |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 reconstructed or fitted component instead of the original blob. If the firmware |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 still works (doesn't break), we make this deblobbing transition permanent and |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 move on to the next component. |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 |
219
b05dba024f95
doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
153 See doc/Modem-configs for the current status of the deblobbing effort and for |
b05dba024f95
doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
154 the description of the currently available configurations. |
94
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 Further reading |
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 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 For various instructions and notes specific to this FreeCalypso Magnetite |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 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
|
161 FreeCalypso project and our hardware building aspirations, go to our website: |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 https://www.freecalypso.org/ |