FreeCalypso > hg > fc-magnetite
annotate README @ 219:b05dba024f95
doc/Handset-configs and doc/Modem-configs written
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sat, 15 Oct 2016 22:41:38 +0000 | 
| parents | 75ea63a3fce5 | 
| 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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
changeset | 40 | 
| 
75ea63a3fce5
README updated for the current status of the project
 Mychaela Falconia <falcon@freecalypso.org> parents: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
94diff
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: 
94diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
96diff
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: 
218diff
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: 
218diff
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/ | 
