FreeCalypso > hg > fc-magnetite
comparison 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 |
comparison
equal
deleted
inserted
replaced
506:be7731ddf4e8 | 507:0582d1267e16 |
---|---|
2 ==================== | 2 ==================== |
3 | 3 |
4 If you would like to build our Magnetite firmware for the Standard Modem | 4 If you would like to build our Magnetite firmware for the Standard Modem |
5 functionality (voice, SMS, CSD, fax and GPRS services enabled, control via AT | 5 functionality (voice, SMS, CSD, fax and GPRS services enabled, control via AT |
6 commands, no UI, two UARTs are expected to be available for the AT command | 6 commands, no UI, two UARTs are expected to be available for the AT command |
7 interface and for the RVTMUX binary packet interface), you have 3 specific | 7 interface and for the RVTMUX binary packet interface), you have 4 specific |
8 configurations to choose from, differing in the level of deblobbing: | 8 configurations to choose from, differing in the level of deblobbing: |
9 | 9 |
10 classic This configuration replicates classic TCS211, just like | 10 classic This configuration replicates classic TCS211, just like |
11 leo2moko from 2013. Almost all of the original binary blob | 11 leo2moko from 2013. Almost all of the original binary blob |
12 libraries are used; the only components that are recompiled | 12 libraries are used; the only components that are recompiled |
19 reconstructed source, and the same is done for the system | 19 reconstructed source, and the same is done for the system |
20 initialization code in main.lib. The entire chipsetsw division | 20 initialization code in main.lib. The entire chipsetsw division |
21 of the firmware (now in src/cs) is thus recompiled from source, | 21 of the firmware (now in src/cs) is thus recompiled from source, |
22 either original or reconstructed, and the only components that | 22 either original or reconstructed, and the only components that |
23 are used as blobs are the G23M PS, GPF and Nucleus. This | 23 are used as blobs are the G23M PS, GPF and Nucleus. This |
24 config can be built for all targets. | 24 config can be built for all targets except c11x. |
25 | 25 |
26 hybrid This configuration is a TCS2/TCS3 hybrid. Instead of using the | 26 hybrid This configuration is a TCS2/TCS3 hybrid. Instead of using the |
27 TCS211 version of the G23M protocol stack which we got only as | 27 TCS211 version of the G23M protocol stack which we got only as |
28 binary blobs, this config uses the G23M PS version from the | 28 binary blobs, this config uses the G23M PS version from the |
29 TCS3.2/LoCosto source, backported to work with L1 and the fw | 29 TCS3.2/LoCosto source, backported to work with L1 and the fw |
30 foundation layers from TCS211. ACI also had to be replaced with | 30 foundation layers from TCS211. ACI also had to be replaced with |
31 the TCS3 version, and a special hybrid version of the cdginc | 31 the TCS3 version, and a special hybrid version of the cdginc |
32 headers had to be constructed. L1 and the init code are also | 32 headers had to be constructed. L1 and the init code are also |
33 deblobbed as in l1reconst. Like l1reconst, this config can be | 33 deblobbed as in l1reconst. Like l1reconst, this config can be |
34 built for all targets, and it is currently the most deblobbed | 34 built for all targets except c11x. |
35 (closest to full source) Magnetite config: the only remaining | |
36 blobs are GPF and Nucleus. | |
37 | 35 |
38 All 3 of the above configurations have CSD, fax and GPRS enabled; this | 36 hybrid-gpf This configuration is just like the regular hybrid config, but |
37 GPF libraries are recompiled from source along with the rest of | |
38 the fw. For some parts of GPF (OSL and OSX components) no | |
39 original source could be found, thus the source we are using | |
40 has been reconstructed from disassembly. | |
41 | |
42 All 4 of the above configurations have CSD, fax and GPRS enabled; this | |
39 functionality can only be exercised on those hardware targets on which both | 43 functionality can only be exercised on those hardware targets on which both |
40 Calypso UARTs are brought out, with the MODEM UART presenting a standard ASCII | 44 Calypso UARTs are brought out, with the MODEM UART presenting a standard ASCII |
41 AT command interface including data functions, while the IrDA UART carries the | 45 AT command interface including data functions, while the IrDA UART carries the |
42 RVTMUX interface for debug trace and other development functions. If you are | 46 RVTMUX interface for debug trace and other development functions. If you are |
43 interacting with your Calypso target modem or pseudo-modem solely through | 47 interacting with your Calypso target modem or pseudo-modem solely through |
69 using exactly the same modem hardware and firmware that worked flawlessly for | 73 using exactly the same modem hardware and firmware that worked flawlessly for |
70 CSD several years earlier, which makes it extremely difficult to test CSD calls | 74 CSD several years earlier, which makes it extremely difficult to test CSD calls |
71 with new firmware - but I finally succeeded in making a CSD call from an FCDEV3B | 75 with new firmware - but I finally succeeded in making a CSD call from an FCDEV3B |
72 running FC Magnetite hybrid on 2018-06-21, proving that the new hybrid fw is | 76 running FC Magnetite hybrid on 2018-06-21, proving that the new hybrid fw is |
73 good for CSD functionality in addition to the better-tested voice, SMS and GPRS. | 77 good for CSD functionality in addition to the better-tested voice, SMS and GPRS. |
78 | |
79 When exercising our hybrid firmware in a production or semi-production setting, | |
80 you should use the regular hybrid config for now, not hybrid-gpf. GPF contains | |
81 a sublayer called OSL (OS Adaptation Layer), a glue layer between GPF and | |
82 Nucleus, and we got absolutely no source for it, only binary objects. The new | |
83 hybrid-gpf config uses a reconstructed source for OSL (reconstructed from | |
84 disassembly), same as our earlier Citrine firmware, and it is intended to serve | |
85 as the basis for the planned new FreeCalypso Selenite fw project. There is a | |
86 lot of code in OSL, the reconstruction from disassembly has been a significant | |
87 work, and there are a few issues with the reconstructed source: | |
88 | |
89 * The reconstruction was really a process of writing new C code that matches | |
90 the logic found in the disassembly of the original, and in some places this | |
91 new C code was written with gcc in mind. Recompilation of this code with | |
92 TI's proprietary TMS470 compiler may not be fully trustworthy. | |
93 | |
94 * An error handling function called os_SystemError() is currently stubbed out: | |
95 reconstructing its original logic from disassembly is quite difficult, so it | |
96 being deferred for now. | |
97 | |
98 * Given the complexity, some of the logic may have been reconstructed | |
99 incorrectly, thus extensive testing will be needed. |