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. |
