FreeCalypso > hg > fc-magnetite
annotate doc/Modem-configs @ 604:a7ed7d4483b0
main assembly boot path code: MEMIF change for 26 MHz targets
as explained in the MEMIF-wait-states document
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 17 Jun 2019 02:11:17 +0000 |
parents | 39a226a06196 |
children |
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, |
556
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
22 either original or reconstructed, and those parts of GPF for |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
23 which we have found matching sources are recompiled from those |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
24 sources as well. The only components that are used as blobs |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
25 are the G23M PS, CCD and ccddata, OSL and OSX (glue parts of |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
26 GPF) and Nucleus. This config can be built for all targets |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
27 except c11x. |
219
b05dba024f95
doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 |
b05dba024f95
doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 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
|
30 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
|
31 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
|
32 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
|
33 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
|
34 the TCS3 version, and a special hybrid version of the cdginc |
556
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
35 headers had to be constructed, giving us blob-free CCD and |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
36 ccddata. L1, the init code and the easy parts of GPF are also |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
37 deblobbed as in l1reconst. Only Nucleus, OSL and OSX remain as |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
38 blobs. Like l1reconst, this config can be built for all targets |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
39 except c11x. |
219
b05dba024f95
doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 |
556
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
41 hybrid-osl This configuration is just like the regular hybrid config, but |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
42 all of GPF is recompiled from source, including OSL and OSX glue |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
43 layers. The source for these components has been reconstructed |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
44 from disassembly - see below for the issues. |
507
0582d1267e16
doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
486
diff
changeset
|
45 |
0582d1267e16
doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
486
diff
changeset
|
46 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
|
47 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
|
48 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
|
49 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
|
50 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
|
51 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
|
52 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
|
53 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
|
54 weight. |
1811c418461b
doc/Modem-configs update: FCDEV3B is here, no specific plans for hybrid work
Mychaela Falconia <falcon@freecalypso.org>
parents:
238
diff
changeset
|
55 |
375
e80e43185ca1
doc/Modem-configs update: we now have both Standard Modem and VPM
Mychaela Falconia <falcon@freecalypso.org>
parents:
312
diff
changeset
|
56 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
|
57 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
|
58 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
|
59 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
|
60 |
b05dba024f95
doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 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
|
62 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
|
63 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
|
64 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
|
65 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
|
66 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
|
67 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
|
68 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
|
69 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
|
70 |
486
c433cca731a3
doc/Modem-configs: hybrid fw status update
Mychaela Falconia <falcon@freecalypso.org>
parents:
459
diff
changeset
|
71 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
|
72 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
|
73 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
|
74 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
|
75 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
|
76 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
|
77 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
|
78 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
|
79 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
|
80 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
|
81 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
|
82 |
0582d1267e16
doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
486
diff
changeset
|
83 When exercising our hybrid firmware in a production or semi-production setting, |
556
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
84 you should use the regular hybrid config for now, not hybrid-osl. GPF contains |
507
0582d1267e16
doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
486
diff
changeset
|
85 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
|
86 Nucleus, and we got absolutely no source for it, only binary objects. The new |
556
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
87 hybrid-osl config uses a reconstructed source for OSL (reconstructed from |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
88 disassembly), same as our earlier Citrine firmware, and it was introduced into |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
89 Magnetite to serve as a stepping stone toward FC Selenite. There is a lot of |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
90 code in OSL, the reconstruction from disassembly has been a significant work, |
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
91 and there are a few issues with the reconstructed source: |
507
0582d1267e16
doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
486
diff
changeset
|
92 |
0582d1267e16
doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
486
diff
changeset
|
93 * 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
|
94 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
|
95 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
|
96 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
|
97 |
0582d1267e16
doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
486
diff
changeset
|
98 * 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
|
99 reconstructing its original logic from disassembly is quite difficult, so it |
556
39a226a06196
documentation update for rebuilding the easy parts of GPF from source
Mychaela Falconia <falcon@freecalypso.org>
parents:
507
diff
changeset
|
100 is deferred for now. |
507
0582d1267e16
doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
486
diff
changeset
|
101 |
0582d1267e16
doc/Modem-configs: hybrid-gpf documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
486
diff
changeset
|
102 * 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
|
103 incorrectly, thus extensive testing will be needed. |