comparison doc/Modem-configs @ 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
children 828a6898241e
comparison
equal deleted inserted replaced
218:75ea63a3fce5 219:b05dba024f95
1 Modem configurations
2 ====================
3
4 If you would like to build our Magnetite firmware in the AT-command-controlled
5 modem configuration (not the C-Sample UI demo on the Mot C139), you have 3
6 specific configurations to choose from, differing in the level of deblobbing:
7
8 classic This configuration replicates classic TCS211, just like
9 leo2moko from 2013. Almost all of the original binary blob
10 libraries are used; the only components that are recompiled
11 from source are those which we got in source form with our copy
12 of TCS211 from Sotovik. This config can only be built for the
13 fcdev3b and gtamodem targets, not for c139 or pirelli.
14
15 l1reconst In this configuration most of L1 (GSM Layer 1) is recompiled
16 from reconstructed source, although this deblobbing of L1 is
17 not 100% complete yet: for some pieces of L1 the original binary
18 object blobs are still used. Some housekeeping pieces are also
19 recompiled from source that had to be reconstructed. This
20 config can be built for all targets.
21
22 hybrid This configuration is a TCS2/TCS3 hybrid. Instead of using the
23 TCS211 version of the G23M protocol stack which we got only as
24 binary blobs, this config uses the G23M PS version from the
25 TCS3.2/LoCosto source, backported to work with L1 and the fw
26 foundation layers from TCS211. ACI also had to be replaced with
27 the TCS3 version, and a special hybrid version of the cdginc
28 headers had to be constructed. L1 is also deblobbed to the
29 same extent as in l1reconst. Like l1reconst, this config can
30 be built for all targets, and it is currently the most deblobbed
31 (closest to full source) Magnetite config.
32
33 All 3 of the above configurations have CSD, fax and GPRS enabled, i.e., include
34 functionality that will only become exercisable when we build our FCDEV3B and
35 is dead weight until then, while we limp along with the currently available
36 hardware. We will need to deblob more of L1 (the l1audio and l1tm modules for
37 which we currently still use the original object blobs) before we can try
38 building a functionally reduced configuration that would be more appropriate
39 for the feeble hardware targets.
40
41 The deblobbing of L1 has been done in a very meticulous manner, ensuring that
42 each individual reconstructed C module compiles into a strict functional
43 equivalent of the original binary blob, sometimes even matching bit for bit -
44 thus no regressions are expected with the classic->l1reconst transition, and no
45 extensive testing is deemed necessary beyond the basic tests that have already
46 been done. However, the transition from l1reconst to hybrid involves wholesale
47 replacement of two major firmware components (G23M PS and ACI) and some
48 important associated support pieces with entirely different versions from a
49 different TI program, hence extensive testing and debugging will be needed.
50
51 So far the most-deblobbed hybrid config looks very promising: after fixing the
52 hideous bug resulting from the addition of A5/3 support in TCS3.2 (hardware
53 feature available on LoCosto but not on Calypso), voice calls work perfectly,
54 both with the legacy codecs and with AMR! (The same A5/3 bugfix has also been
55 applied to our Citrine fw, hence the latter now has working voice calls too.)
56 However, it is almost certain that there are a ton of minor bugs which need to
57 be shaken out, hence this firmware build config should be treated as
58 experimental for the time being, not production. My plan is to work on shaking
59 out the minor bugs and bringing this hybrid fw to production quality after we
60 build the proper hardware platform for it, i.e., the FCDEV3B.