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 |