annotate README @ 504:5a4de246242b

src/gpf3/frame/frame.c: source version of the system trace fix which we've been using in binary patch form for a long time
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 25 Jun 2018 02:31:03 +0000
parents a1946652f71c
children 1edb0615c439
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
384
56ac93768594 README: update for C11x support
Mychaela Falconia <falcon@freecalypso.org>
parents: 373
diff changeset
19 scene already have: Motorola C1xx and Pirelli DP-L10. Firmware images of the
56ac93768594 README: update for C11x support
Mychaela Falconia <falcon@freecalypso.org>
parents: 373
diff changeset
20 "hacking toy" sort can be built for these devices from the present source
56ac93768594 README: update for C11x support
Mychaela Falconia <falcon@freecalypso.org>
parents: 373
diff changeset
21 tree, and one can exercise most of the functions and capabilities of
373
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
384
56ac93768594 README: update for C11x support
Mychaela Falconia <falcon@freecalypso.org>
parents: 373
diff changeset
23 but available-to-most-people hardware. See doc/C1xx-Howto, doc/Pirelli-Howto
373
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
462
78e19122fa2b README: update for D-Sample target support and hybrid UI
Mychaela Falconia <falcon@freecalypso.org>
parents: 384
diff changeset
26 * If anyone besides the Mother has an original TI-made D-Sample hardware kit
78e19122fa2b README: update for D-Sample target support and hybrid UI
Mychaela Falconia <falcon@freecalypso.org>
parents: 384
diff changeset
27 for Calypso software development, we are doing the best we can to support
78e19122fa2b README: update for D-Sample target support and hybrid UI
Mychaela Falconia <falcon@freecalypso.org>
parents: 384
diff changeset
28 running our FreeCalypso firmware on this original TI hardware - see
78e19122fa2b README: update for D-Sample target support and hybrid UI
Mychaela Falconia <falcon@freecalypso.org>
parents: 384
diff changeset
29 doc/D-Sample for more information.
78e19122fa2b README: update for D-Sample target support and hybrid UI
Mychaela Falconia <falcon@freecalypso.org>
parents: 384
diff changeset
30
94
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 Functionality
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 =============
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 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
35 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
36 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
37 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
38 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
39 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
40 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
41 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
42
373
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
43 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
44 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
45 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
46 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
47 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
48 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
49 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
50 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
51
373
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
52 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
53 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
54 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
55 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
56 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
57 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
58 is connected to the phone's application processor.
94
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 Build system
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 ============
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 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
64 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
65 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
66 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
67 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
68 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
69 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
70 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
71 Windows environment (drive letters, backslashes, case-insensitive file system)
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 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
73 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
74 themselves: regenerating a makefile from XML magic required major effort, there
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 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
76 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
77 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
78 serving project.
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 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
81 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
82 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
83 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
84 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
85 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
86 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
87 there. The source and build trees are thus cleanly separated. See
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 doc/Compiling for detailed instructions.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 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
91 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
92 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
93 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
94 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
95 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
96 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
97 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
98 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
99 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
100 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
101 Unix tool to all upper levels.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 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
104 tree with Unix line endings.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105
373
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
106 Two versions of the G23M protocol stack
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
107 =======================================
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 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
110 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
111 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
112 key firmware component:
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
113
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
114 * 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
115 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
116 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
117 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
118 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
119 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
120 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
121 without source.
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
122
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
123 * 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
124 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
125 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
126 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
127 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
128
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
129 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
130 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
131 except that in the case of ACI, we have the full source for both versions.
462
78e19122fa2b README: update for D-Sample target support and hybrid UI
Mychaela Falconia <falcon@freecalypso.org>
parents: 384
diff changeset
132 Furthermore, in the case of firmware builds that have the phone UI layers
78e19122fa2b README: update for D-Sample target support and hybrid UI
Mychaela Falconia <falcon@freecalypso.org>
parents: 384
diff changeset
133 enabled (BMI and MFW, sitting on top of ACI), we likewise have different TCS2
78e19122fa2b README: update for D-Sample target support and hybrid UI
Mychaela Falconia <falcon@freecalypso.org>
parents: 384
diff changeset
134 and TCS3 versions of these BMI and MFW layers, also with full source for both
78e19122fa2b README: update for D-Sample target support and hybrid UI
Mychaela Falconia <falcon@freecalypso.org>
parents: 384
diff changeset
135 versions. Thus the chipsetsw foundation is always the same TCS211, but then we
78e19122fa2b README: update for D-Sample target support and hybrid UI
Mychaela Falconia <falcon@freecalypso.org>
parents: 384
diff changeset
136 bifurcate: we can build either a pure TCS211 config using TCS211 versions of
78e19122fa2b README: update for D-Sample target support and hybrid UI
Mychaela Falconia <falcon@freecalypso.org>
parents: 384
diff changeset
137 G23M PS (blobs), ACI (source) and MFW+BMI (source), or a TCS2/TCS3 hybrid config
78e19122fa2b README: update for D-Sample target support and hybrid UI
Mychaela Falconia <falcon@freecalypso.org>
parents: 384
diff changeset
138 using the new TCS3 versions of G23M PS, ACI and MFW+BMI, all in full C source
78e19122fa2b README: update for D-Sample target support and hybrid UI
Mychaela Falconia <falcon@freecalypso.org>
parents: 384
diff changeset
139 form.
373
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
140
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
141 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
142 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
143 a software product. FC Magnetite supports building both configurations in order
484
a1946652f71c top README: update for the status of hybrid firmware
Mychaela Falconia <falcon@freecalypso.org>
parents: 462
diff changeset
144 to facilitate the transition. As of this writing, the hybrid config is believed
a1946652f71c top README: update for the status of hybrid firmware
Mychaela Falconia <falcon@freecalypso.org>
parents: 462
diff changeset
145 to have reached feature parity with Openmoko-mimicking classic and l1reconst
a1946652f71c top README: update for the status of hybrid firmware
Mychaela Falconia <falcon@freecalypso.org>
parents: 462
diff changeset
146 configs, i.e., unless we missed or broke something, every feature that worked
a1946652f71c top README: update for the status of hybrid firmware
Mychaela Falconia <falcon@freecalypso.org>
parents: 462
diff changeset
147 correctly on Openmoko's original modem should work just as well with our hybrid
a1946652f71c top README: update for the status of hybrid firmware
Mychaela Falconia <falcon@freecalypso.org>
parents: 462
diff changeset
148 firmware. All functionality (both standard and OM-custom) that can be tested
a1946652f71c top README: update for the status of hybrid firmware
Mychaela Falconia <falcon@freecalypso.org>
parents: 462
diff changeset
149 in our lab appears to work flawlessly; the new hybrid modem fw now needs to be
a1946652f71c top README: update for the status of hybrid firmware
Mychaela Falconia <falcon@freecalypso.org>
parents: 462
diff changeset
150 tested by a larger number of users in real-life usage.
373
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
151
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
152 Other blobs
94
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 ===========
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154
373
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
155 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
156 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
157 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
158 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
159 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
160 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
161 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
162 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
163 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
164 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
165 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
166 other FreeCalypso firmware projects.
94
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167
373
9399a83cb394 first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents: 254
diff changeset
168 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
169 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
170 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
171 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
172 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
173 land of blobs and proprietary build tools.
94
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 Further reading
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 ===============
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178 For various instructions and notes specific to this FreeCalypso Magnetite
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 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
180 FreeCalypso project and our hardware building aspirations, go to our website:
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 https://www.freecalypso.org/