FreeCalypso > hg > freecalypso-sw
comparison doc/RVTMUX @ 272:9c34d938a645
doc/RVTMUX: TMFFS protocol versions documented
| author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
|---|---|
| date | Fri, 07 Feb 2014 07:29:36 +0000 |
| parents | d1388095ab27 |
| children | d6dfad22cccd |
comparison
equal
deleted
inserted
replaced
| 271:cd043e690621 | 272:9c34d938a645 |
|---|---|
| 16 entirely different interface on the IrDA UART - an interface intended for | 16 entirely different interface on the IrDA UART - an interface intended for |
| 17 development, debugging and factory production testing (which includes RF | 17 development, debugging and factory production testing (which includes RF |
| 18 calibration and IMEI etc programming), rather than for "normal" end users. | 18 calibration and IMEI etc programming), rather than for "normal" end users. |
| 19 | 19 |
| 20 Normally this debug/development serial interface (called RVTMUX as will be | 20 Normally this debug/development serial interface (called RVTMUX as will be |
| 21 explained momentarily) is hidden from "normal" users - for example, on FIC | 21 explained momentarily) is hidden from "ordinary" users - for example, on FIC |
| 22 GTA0x phones it is wired to the analog headset jack through a hardware switch | 22 GTA0x phones it is wired to the analog headset jack through a hardware switch |
| 23 which needs to be enabled through a GPIO signal from the AP. But there also | 23 which needs to be enabled through a GPIO signal from the AP. But there also |
| 24 exist some oddball devices on which the RVTMUX interface is presented "in your | 24 exist some oddball devices on which the RVTMUX interface is presented "in your |
| 25 face". The Pirelli DP-L10 phone has a USB charging port which is also wired | 25 face". The Pirelli DP-L10 phone has a USB charging port which is also wired |
| 26 (through a CP2102 USB-serial chip) to the IrDA UART on the Calypso - that's | 26 (through a CP2102 USB-serial chip) to the IrDA UART on the Calypso - that's |
| 99 protocols provide a command/response packet interface to the FFS API functions | 99 protocols provide a command/response packet interface to the FFS API functions |
| 100 inside the fw, and enable an external host connected to the GSM device via the | 100 inside the fw, and enable an external host connected to the GSM device via the |
| 101 RVTMUX channel to perform arbitrary read and write operations on the device | 101 RVTMUX channel to perform arbitrary read and write operations on the device |
| 102 file system. | 102 file system. |
| 103 | 103 |
| 104 TMFFS protocol versions | |
| 105 ======================= | |
| 106 | |
| 107 TI made two different and entirely incompatible versions of the TMFFS protocol | |
| 108 for accessing a device's FFS via RVT/ETM: TIFFS1 and TIFFS2. The fw sources | |
| 109 available to us contain implementations of both versions, so we have the freedom | |
| 110 to use whichever we like better for FreeCalypso. After studying the fw source | |
| 111 implementing the two TMFFS protocols, I (Space Falcon) came to the conclusion | |
| 112 that TMFFS2 is both more capable and more reliable; my guess is that TMFFS1 was | |
| 113 likely kept around only because some of TI's crappy Weendoze host software | |
| 114 depended on it. (See gsm-fw/services/ffs/tmffs.c if you would like to judge | |
| 115 for yourself.) Thus TMFFS2 is currently the "officially adopted" version for | |
| 116 FreeCalypso. | |
| 117 | |
| 118 Our fc-tmsh utility (described below) allows a developer-operator to send TMFFS | |
| 119 "get version" queries to a running GSM fw in both ETM_FFS1 and ETM_FFS2 formats; | |
| 120 this capability allows us to determine experimentally which protocol (if any) is | |
| 121 implemented by a given proprietary firmware version. Experiments reveal that | |
| 122 Openmoko's moko11 firmware implements TMFFS1, whereas Pirelli's fw implements | |
| 123 TMFFS2. | |
| 124 | |
| 125 The leo2moko-r1 firmware produced by the FreeCalypso project in 2013-10 | |
| 126 implements TMFFS1, simply because that was the selected configuration in the | |
| 127 found Leonardo source that transitional fw is based on, and that release was | |
| 128 made before I learned RVTMUX, FFS, ETM and TMFFS properly. All future | |
| 129 FreeCalypso firmwares will use TIFFS2, or at least that's the current plan. | |
| 130 | |
| 104 Host utility support | 131 Host utility support |
| 105 ==================== | 132 ==================== |
| 106 | 133 |
| 107 As one would naturally expect, the FreeCalypso project has developed some host | 134 As one would naturally expect, the FreeCalypso project has developed some host |
| 108 tools that allow a PC running GNU/Linux (or other Unix systems) to interface to | 135 tools that allow a PC running GNU/Linux (or other Unix systems) to interface to |
