annotate README @ 163:a911ac771094

board preprocessor conditionals: prep for more FC hw in the future Please see the corresponding change in fc-magnetite for the explanation.
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 01 Apr 2019 01:20:03 +0000
parents ee67197fd2e5
children 9b49f18d3221
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
100
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
1 FreeCalypso Selenite is an experimental side branch off the mainline FC
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
2 Magnetite firmware. The principal changes from Magnetite are:
36
1e575681e595 README added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3
1e575681e595 README added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * Only modem functionality is supported. FC Magnetite includes TI's C-Sample
1e575681e595 README added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 and D-Sample demo/prototype UI code and work in progress toward our own
1e575681e595 README added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 FreeCalypso Libre Dumbphone; this code is not included and this functionality
1e575681e595 README added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 is explicitly unsupported in Selenite.
1e575681e595 README added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8
1e575681e595 README added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 * Only the hybrid modem configuration is supported, using the new G23M PS and
1e575681e595 README added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 ACI code from TCS3.2/LoCosto, not any of the legacy configurations that used
1e575681e595 README added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 the blob-laden version from TCS211-20070608.
1e575681e595 README added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12
1e575681e595 README added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 * The old version of Nucleus used in TI's TCS211 program (binary sans source)
100
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
14 has been replaced with FreeNucleus by XVilka. OSL (GPF to Nucleus glue layer)
36
1e575681e595 README added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 is the source-reconstructed version.
1e575681e595 README added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16
108
af6b7fcf7823 README: GPRS status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 100
diff changeset
17 * The tree layout and the build system are structured in such a way that it is
100
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
18 possible to build either with TI's original TMS470 compiler or with gcc.
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
19
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
20 The purpose of this Selenite fw experiment is to see what will happen if we
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
21 take our full-featured hybrid modem fw as featured in Magnetite and compile it
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
22 with gcc instead of TI's original TMS470 compiler, which also implies swapping
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
23 in the new version of Nucleus and an entirely different implementation of all
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
24 assembly components and linker script magic. The current status is as follows:
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
25
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
26 * When built with the original TMS470 compiler, the present Selenite fw appears
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
27 to perform no worse than Magnetite hybrid.
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
28
108
af6b7fcf7823 README: GPRS status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 100
diff changeset
29 * It is now possible to compile the full-featured fw with gcc without disabling
af6b7fcf7823 README: GPRS status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 100
diff changeset
30 GPRS (no more crash on boot), but actually using GPRS doesn't work: pppd
af6b7fcf7823 README: GPRS status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 100
diff changeset
31 establishes the point-to-point connection to the network's GGSN and gets an
110
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
32 IP address, but then trying to ping through this established connection causes
108
af6b7fcf7823 README: GPRS status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 100
diff changeset
33 the fw to crash.
36
1e575681e595 README added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34
108
af6b7fcf7823 README: GPRS status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 100
diff changeset
35 * Voice, SMS and CSD appear to work in the gcc-built version, but this firmware
af6b7fcf7823 README: GPRS status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 100
diff changeset
36 is not as stable as Magnetite hybrid: I saw some occasional glitches which I
af6b7fcf7823 README: GPRS status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 100
diff changeset
37 did not investigate further.
100
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
38
110
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
39 Compared to FC Citrine (our previous attempt at gcc-built fw), the present
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
40 FC Selenite firmware built with gcc already offers the following:
100
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
41
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
42 * CSD support;
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
43
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
44 * Audio services: playing beeps and melodies through the DSP;
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
45
127
ee67197fd2e5 README: added note about Selenite getting synced with Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents: 110
diff changeset
46 * Newer code: FC Selenite branched off Magnetite in 2018-07 and is being
ee67197fd2e5 README: added note about Selenite getting synced with Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents: 110
diff changeset
47 periodically synced with new Magnetite developments, whereas FC Citrine
ee67197fd2e5 README: added note about Selenite getting synced with Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents: 110
diff changeset
48 has been unmaintained since 2016-10.
100
5280c5f4c5cd README: update for the outcome of the gcc experiment
Mychaela Falconia <falcon@freecalypso.org>
parents: 36
diff changeset
49
110
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
50 Because FC Selenite gcc already does everything that FC Citrine could do and
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
51 more, and is no less free, FC Citrine is now officially fully retired.
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
52
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
53 As the next step, someone needs to do the work of tracking down and debugging
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
54 all of the issues seen in the gcc-built version, and make it work as well as
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
55 the original TMS470-built configuration. However, I (Mother Mychaela) am not
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
56 currently allocating my time toward that work because I see other directions
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
57 within the greater FreeCalypso family of projects as being more important.
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
58 Specifically, I see the following as much higher priorities compared to
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
59 gcc-built firmware:
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
60
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
61 * Getting our FCDEV3B V2 boards made to prove my proposed fix for the sleep
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
62 mode bug, and if they work as expected, we'll need to make more FreeCalypso
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
63 modem hw in various form factors and put that hw into the hands of end users.
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
64 Software or firmware without hardware to run it on is useless no matter how
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
65 good or how free/libre it is, hence it makes no sense to me to worry whether
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
66 our fw is built with gcc or with TI's TMS470 compiler until the hardware
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
67 that's needed to run it is made in greater volume and placed into the hands
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
68 of people who would appreciate it.
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
69
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
70 * Getting the digital voice channel over MCSI working, which is a prerequisite
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
71 before we can repackage our FreeCalypso modem into a module form factor which
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
72 could then be marketed to communities like Neo900 and Librem 5 as a drop-in
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
73 replacement for the 100% closed and proprietary modem modules they use
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
74 currently.
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
75
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
76 * Building our long-planned FreeCalypso Libre Dumbphone hardware, so we can
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
77 have a complete phone without needing someone else like Neo900 or Librem 5 or
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
78 ZeroPhone to provide an application processor front-end to our modem.
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
79
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
80 Anyone else who feels that whipping the gcc-built fw version into shape should
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
81 be a higher priority has two options: either do the work themselves (the code
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
82 is free for everyone), or pay Falconia Partners LLC to elevate the priority of
6ed76fdb72d5 README: better explanation of current status and what needs to be done next
Mychaela Falconia <falcon@freecalypso.org>
parents: 108
diff changeset
83 this gcc-built fw work.