FreeCalypso > hg > fc-magnetite
annotate doc/Modem-configs @ 636:57e67ca2e1cb
pcmdata.c: default +CGMI to "FreeCalypso" and +CGMM to model
The present change has no effect whatsoever on Falconia-made and Openmoko-made
devices on which /pcm/CGMI and /pcm/CGMM files have been programmed in FFS
with sensible ID strings by the respective factories, but what should AT+CGMI
and AT+CGMM queries return when the device is a Huawei GTM900 or Tango modem
that has been converted to FreeCalypso with a firmware change? Before the
present change they would return compiled-in defaults of "<manufacturer>" and
"<model>", respectively; with the present change the firmware will self-identify
as "FreeCalypso GTM900-FC" or "FreeCalypso Tango" on the two respective targets.
This firmware identification will become important if someone incorporates an
FC-converted GTM900 or Tango modem into a ZeroPhone-style smartphone where some
high-level software like ofono will be talking to the modem and will need to
properly identify this modem as FreeCalypso, as opposed to some other AT command
modem flavor with different quirks.
In technical terms, the compiled-in default for the AT+CGMI query (which will
always be overridden by the /pcm/CGMI file in FFS if one is present) is now
"FreeCalypso" in all configs on all targets; the compiled-in default for the
AT+CGMM query (likewise always overridden by /pcm/CGMM if present) is
"GTM900-FC" if CONFIG_TARGET_GTM900 or "Tango" if CONFIG_TARGET_TANGO or the
original default of "<model>" otherwise.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 19 Jan 2020 20:14:58 +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. |