annotate doc/Modem-configs @ 507:0582d1267e16

doc/Modem-configs: hybrid-gpf documented
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 25 Jun 2018 05:34:57 +0000
parents c433cca731a3
children 39a226a06196
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
219
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 Modem configurations
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 ====================
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3
375
e80e43185ca1 doc/Modem-configs update: we now have both Standard Modem and VPM
Mychaela Falconia <falcon@freecalypso.org>
parents: 312
diff changeset
4 If you would like to build our Magnetite firmware for the Standard Modem
e80e43185ca1 doc/Modem-configs update: we now have both Standard Modem and VPM
Mychaela Falconia <falcon@freecalypso.org>
parents: 312
diff changeset
5 functionality (voice, SMS, CSD, fax and GPRS services enabled, control via AT
e80e43185ca1 doc/Modem-configs update: we now have both Standard Modem and VPM
Mychaela Falconia <falcon@freecalypso.org>
parents: 312
diff changeset
6 commands, no UI, two UARTs are expected to be available for the AT command
507
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
7 interface and for the RVTMUX binary packet interface), you have 4 specific
375
e80e43185ca1 doc/Modem-configs update: we now have both Standard Modem and VPM
Mychaela Falconia <falcon@freecalypso.org>
parents: 312
diff changeset
8 configurations to choose from, differing in the level of deblobbing:
219
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 classic This configuration replicates classic TCS211, just like
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 leo2moko from 2013. Almost all of the original binary blob
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 libraries are used; the only components that are recompiled
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 from source are those which we got in source form with our copy
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 of TCS211 from Sotovik. This config can only be built for the
459
117bf0fb1e78 doc/Modem-configs: wording change for classic config targets
Mychaela Falconia <falcon@freecalypso.org>
parents: 375
diff changeset
15 fcdev3b and gtamodem targets, not any others.
219
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16
312
e60d7a32ae2a doc/Modem-configs: deblobbing status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 252
diff changeset
17 l1reconst In this configuration the Layer1 component of the firmware
e60d7a32ae2a doc/Modem-configs: deblobbing status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 252
diff changeset
18 (which came as a blob in our copy of TCS211) is recompiled from
e60d7a32ae2a doc/Modem-configs: deblobbing status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 252
diff changeset
19 reconstructed source, and the same is done for the system
e60d7a32ae2a doc/Modem-configs: deblobbing status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 252
diff changeset
20 initialization code in main.lib. The entire chipsetsw division
e60d7a32ae2a doc/Modem-configs: deblobbing status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 252
diff changeset
21 of the firmware (now in src/cs) is thus recompiled from source,
e60d7a32ae2a doc/Modem-configs: deblobbing status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 252
diff changeset
22 either original or reconstructed, and the only components that
e60d7a32ae2a doc/Modem-configs: deblobbing status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 252
diff changeset
23 are used as blobs are the G23M PS, GPF and Nucleus. This
507
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
24 config can be built for all targets except c11x.
219
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 hybrid This configuration is a TCS2/TCS3 hybrid. Instead of using the
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 TCS211 version of the G23M protocol stack which we got only as
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 binary blobs, this config uses the G23M PS version from the
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 TCS3.2/LoCosto source, backported to work with L1 and the fw
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 foundation layers from TCS211. ACI also had to be replaced with
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 the TCS3 version, and a special hybrid version of the cdginc
312
e60d7a32ae2a doc/Modem-configs: deblobbing status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 252
diff changeset
32 headers had to be constructed. L1 and the init code are also
e60d7a32ae2a doc/Modem-configs: deblobbing status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 252
diff changeset
33 deblobbed as in l1reconst. Like l1reconst, this config can be
507
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
34 built for all targets except c11x.
219
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35
507
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
36 hybrid-gpf This configuration is just like the regular hybrid config, but
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
37 GPF libraries are recompiled from source along with the rest of
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
38 the fw. For some parts of GPF (OSL and OSX components) no
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
39 original source could be found, thus the source we are using
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
40 has been reconstructed from disassembly.
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
41
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
42 All 4 of the above configurations have CSD, fax and GPRS enabled; this
252
1811c418461b doc/Modem-configs update: FCDEV3B is here, no specific plans for hybrid work
Mychaela Falconia <falcon@freecalypso.org>
parents: 238
diff changeset
43 functionality can only be exercised on those hardware targets on which both
1811c418461b doc/Modem-configs update: FCDEV3B is here, no specific plans for hybrid work
Mychaela Falconia <falcon@freecalypso.org>
parents: 238
diff changeset
44 Calypso UARTs are brought out, with the MODEM UART presenting a standard ASCII
1811c418461b doc/Modem-configs update: FCDEV3B is here, no specific plans for hybrid work
Mychaela Falconia <falcon@freecalypso.org>
parents: 238
diff changeset
45 AT command interface including data functions, while the IrDA UART carries the
1811c418461b doc/Modem-configs update: FCDEV3B is here, no specific plans for hybrid work
Mychaela Falconia <falcon@freecalypso.org>
parents: 238
diff changeset
46 RVTMUX interface for debug trace and other development functions. If you are
1811c418461b doc/Modem-configs update: FCDEV3B is here, no specific plans for hybrid work
Mychaela Falconia <falcon@freecalypso.org>
parents: 238
diff changeset
47 interacting with your Calypso target modem or pseudo-modem solely through
1811c418461b doc/Modem-configs update: FCDEV3B is here, no specific plans for hybrid work
Mychaela Falconia <falcon@freecalypso.org>
parents: 238
diff changeset
48 RVTMUX, without access to the ASCII AT command interface on the dedicated MODEM
1811c418461b doc/Modem-configs update: FCDEV3B is here, no specific plans for hybrid work
Mychaela Falconia <falcon@freecalypso.org>
parents: 238
diff changeset
49 UART, then the data functions of the firmware are inaccessible and act as dead
1811c418461b doc/Modem-configs update: FCDEV3B is here, no specific plans for hybrid work
Mychaela Falconia <falcon@freecalypso.org>
parents: 238
diff changeset
50 weight.
1811c418461b doc/Modem-configs update: FCDEV3B is here, no specific plans for hybrid work
Mychaela Falconia <falcon@freecalypso.org>
parents: 238
diff changeset
51
375
e80e43185ca1 doc/Modem-configs update: we now have both Standard Modem and VPM
Mychaela Falconia <falcon@freecalypso.org>
parents: 312
diff changeset
52 Having fully deblobbed all of L1, we now have the ability to build our hybrid
e80e43185ca1 doc/Modem-configs update: we now have both Standard Modem and VPM
Mychaela Falconia <falcon@freecalypso.org>
parents: 312
diff changeset
53 firmware not only for the Standard Modem functionality with all data services
e80e43185ca1 doc/Modem-configs update: we now have both Standard Modem and VPM
Mychaela Falconia <falcon@freecalypso.org>
parents: 312
diff changeset
54 enabled as above, but also in a stripped-down "voice pseudo-modem"
e80e43185ca1 doc/Modem-configs update: we now have both Standard Modem and VPM
Mychaela Falconia <falcon@freecalypso.org>
parents: 312
diff changeset
55 configuration - see the Voice-pseudo-modem article.
219
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 The deblobbing of L1 has been done in a very meticulous manner, ensuring that
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 each individual reconstructed C module compiles into a strict functional
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 equivalent of the original binary blob, sometimes even matching bit for bit -
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 thus no regressions are expected with the classic->l1reconst transition, and no
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 extensive testing is deemed necessary beyond the basic tests that have already
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 been done. However, the transition from l1reconst to hybrid involves wholesale
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 replacement of two major firmware components (G23M PS and ACI) and some
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 important associated support pieces with entirely different versions from a
486
c433cca731a3 doc/Modem-configs: hybrid fw status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 459
diff changeset
65 different TI program, hence it can certainly benefit from more thorough testing.
219
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66
486
c433cca731a3 doc/Modem-configs: hybrid fw status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 459
diff changeset
67 So far the most-deblobbed hybrid config looks very promising: voice, SMS and
c433cca731a3 doc/Modem-configs: hybrid fw status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 459
diff changeset
68 GPRS work perfectly in my (Mother Mychaela's) lab environment, and even CSD has
c433cca731a3 doc/Modem-configs: hybrid fw status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 459
diff changeset
69 finally been proven to work as well on 2018-06-21. CSD functionality has been
c433cca731a3 doc/Modem-configs: hybrid fw status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 459
diff changeset
70 extremely difficult to test because it has been very unreliable lately on the
c433cca731a3 doc/Modem-configs: hybrid fw status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 459
diff changeset
71 network side in my geographical location (T-Mobile USA), with CSD calls failing
c433cca731a3 doc/Modem-configs: hybrid fw status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 459
diff changeset
72 something like 99.9% of the time with a NO CARRIER response to the ATD command,
c433cca731a3 doc/Modem-configs: hybrid fw status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 459
diff changeset
73 using exactly the same modem hardware and firmware that worked flawlessly for
c433cca731a3 doc/Modem-configs: hybrid fw status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 459
diff changeset
74 CSD several years earlier, which makes it extremely difficult to test CSD calls
c433cca731a3 doc/Modem-configs: hybrid fw status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 459
diff changeset
75 with new firmware - but I finally succeeded in making a CSD call from an FCDEV3B
c433cca731a3 doc/Modem-configs: hybrid fw status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 459
diff changeset
76 running FC Magnetite hybrid on 2018-06-21, proving that the new hybrid fw is
c433cca731a3 doc/Modem-configs: hybrid fw status update
Mychaela Falconia <falcon@freecalypso.org>
parents: 459
diff changeset
77 good for CSD functionality in addition to the better-tested voice, SMS and GPRS.
507
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
78
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
79 When exercising our hybrid firmware in a production or semi-production setting,
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
80 you should use the regular hybrid config for now, not hybrid-gpf. GPF contains
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
81 a sublayer called OSL (OS Adaptation Layer), a glue layer between GPF and
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
82 Nucleus, and we got absolutely no source for it, only binary objects. The new
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
83 hybrid-gpf config uses a reconstructed source for OSL (reconstructed from
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
84 disassembly), same as our earlier Citrine firmware, and it is intended to serve
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
85 as the basis for the planned new FreeCalypso Selenite fw project. There is a
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
86 lot of code in OSL, the reconstruction from disassembly has been a significant
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
87 work, and there are a few issues with the reconstructed source:
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
88
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
89 * The reconstruction was really a process of writing new C code that matches
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
90 the logic found in the disassembly of the original, and in some places this
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
91 new C code was written with gcc in mind. Recompilation of this code with
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
92 TI's proprietary TMS470 compiler may not be fully trustworthy.
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
93
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
94 * An error handling function called os_SystemError() is currently stubbed out:
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
95 reconstructing its original logic from disassembly is quite difficult, so it
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
96 being deferred for now.
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
97
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
98 * Given the complexity, some of the logic may have been reconstructed
0582d1267e16 doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 486
diff changeset
99 incorrectly, thus extensive testing will be needed.