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.