FreeCalypso > hg > fc-magnetite
comparison doc/Modem-configs @ 556:39a226a06196
documentation update for rebuilding the easy parts of GPF from source
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 19 Nov 2018 02:00:21 +0000 |
parents | 0582d1267e16 |
children |
comparison
equal
deleted
inserted
replaced
555:6690ae453594 | 556:39a226a06196 |
---|---|
17 l1reconst In this configuration the Layer1 component of the firmware | 17 l1reconst In this configuration the Layer1 component of the firmware |
18 (which came as a blob in our copy of TCS211) is recompiled from | 18 (which came as a blob in our copy of TCS211) is recompiled from |
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 those parts of GPF for |
23 are used as blobs are the G23M PS, GPF and Nucleus. This | 23 which we have found matching sources are recompiled from those |
24 config can be built for all targets except c11x. | 24 sources as well. The only components that are used as blobs |
25 are the G23M PS, CCD and ccddata, OSL and OSX (glue parts of | |
26 GPF) and Nucleus. This config can be built for all targets | |
27 except c11x. | |
25 | 28 |
26 hybrid This configuration is a TCS2/TCS3 hybrid. Instead of using the | 29 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 | 30 TCS211 version of the G23M protocol stack which we got only as |
28 binary blobs, this config uses the G23M PS version from the | 31 binary blobs, this config uses the G23M PS version from the |
29 TCS3.2/LoCosto source, backported to work with L1 and the fw | 32 TCS3.2/LoCosto source, backported to work with L1 and the fw |
30 foundation layers from TCS211. ACI also had to be replaced with | 33 foundation layers from TCS211. ACI also had to be replaced with |
31 the TCS3 version, and a special hybrid version of the cdginc | 34 the TCS3 version, and a special hybrid version of the cdginc |
32 headers had to be constructed. L1 and the init code are also | 35 headers had to be constructed, giving us blob-free CCD and |
33 deblobbed as in l1reconst. Like l1reconst, this config can be | 36 ccddata. L1, the init code and the easy parts of GPF are also |
34 built for all targets except c11x. | 37 deblobbed as in l1reconst. Only Nucleus, OSL and OSX remain as |
38 blobs. Like l1reconst, this config can be built for all targets | |
39 except c11x. | |
35 | 40 |
36 hybrid-gpf This configuration is just like the regular hybrid config, but | 41 hybrid-osl This configuration is just like the regular hybrid config, but |
37 GPF libraries are recompiled from source along with the rest of | 42 all of GPF is recompiled from source, including OSL and OSX glue |
38 the fw. For some parts of GPF (OSL and OSX components) no | 43 layers. The source for these components has been reconstructed |
39 original source could be found, thus the source we are using | 44 from disassembly - see below for the issues. |
40 has been reconstructed from disassembly. | |
41 | 45 |
42 All 4 of the above configurations have CSD, fax and GPRS enabled; this | 46 All 4 of the above configurations have CSD, fax and GPRS enabled; this |
43 functionality can only be exercised on those hardware targets on which both | 47 functionality can only be exercised on those hardware targets on which both |
44 Calypso UARTs are brought out, with the MODEM UART presenting a standard ASCII | 48 Calypso UARTs are brought out, with the MODEM UART presenting a standard ASCII |
45 AT command interface including data functions, while the IrDA UART carries the | 49 AT command interface including data functions, while the IrDA UART carries the |
75 with new firmware - but I finally succeeded in making a CSD call from an FCDEV3B | 79 with new firmware - but I finally succeeded in making a CSD call from an FCDEV3B |
76 running FC Magnetite hybrid on 2018-06-21, proving that the new hybrid fw is | 80 running FC Magnetite hybrid on 2018-06-21, proving that the new hybrid fw is |
77 good for CSD functionality in addition to the better-tested voice, SMS and GPRS. | 81 good for CSD functionality in addition to the better-tested voice, SMS and GPRS. |
78 | 82 |
79 When exercising our hybrid firmware in a production or semi-production setting, | 83 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 | 84 you should use the regular hybrid config for now, not hybrid-osl. GPF contains |
81 a sublayer called OSL (OS Adaptation Layer), a glue layer between GPF and | 85 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 | 86 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 | 87 hybrid-osl config uses a reconstructed source for OSL (reconstructed from |
84 disassembly), same as our earlier Citrine firmware, and it is intended to serve | 88 disassembly), same as our earlier Citrine firmware, and it was introduced into |
85 as the basis for the planned new FreeCalypso Selenite fw project. There is a | 89 Magnetite to serve as a stepping stone toward FC Selenite. There is a lot of |
86 lot of code in OSL, the reconstruction from disassembly has been a significant | 90 code in OSL, the reconstruction from disassembly has been a significant work, |
87 work, and there are a few issues with the reconstructed source: | 91 and there are a few issues with the reconstructed source: |
88 | 92 |
89 * The reconstruction was really a process of writing new C code that matches | 93 * 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 | 94 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 | 95 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. | 96 TI's proprietary TMS470 compiler may not be fully trustworthy. |
93 | 97 |
94 * An error handling function called os_SystemError() is currently stubbed out: | 98 * An error handling function called os_SystemError() is currently stubbed out: |
95 reconstructing its original logic from disassembly is quite difficult, so it | 99 reconstructing its original logic from disassembly is quite difficult, so it |
96 being deferred for now. | 100 is deferred for now. |
97 | 101 |
98 * Given the complexity, some of the logic may have been reconstructed | 102 * Given the complexity, some of the logic may have been reconstructed |
99 incorrectly, thus extensive testing will be needed. | 103 incorrectly, thus extensive testing will be needed. |