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