changeset 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 cd043e690621
children d6dfad22cccd
files doc/RVTMUX
diffstat 1 files changed, 28 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/doc/RVTMUX	Fri Feb 07 05:00:24 2014 +0000
+++ b/doc/RVTMUX	Fri Feb 07 07:29:36 2014 +0000
@@ -18,7 +18,7 @@
 calibration and IMEI etc programming), rather than for "normal" end users.
 
 Normally this debug/development serial interface (called RVTMUX as will be
-explained momentarily) is hidden from "normal" users - for example, on FIC
+explained momentarily) is hidden from "ordinary" users - for example, on FIC
 GTA0x phones it is wired to the analog headset jack through a hardware switch
 which needs to be enabled through a GPIO signal from the AP.  But there also
 exist some oddball devices on which the RVTMUX interface is presented "in your
@@ -101,6 +101,33 @@
 RVTMUX channel to perform arbitrary read and write operations on the device
 file system.
 
+TMFFS protocol versions
+=======================
+
+TI made two different and entirely incompatible versions of the TMFFS protocol
+for accessing a device's FFS via RVT/ETM: TIFFS1 and TIFFS2.  The fw sources
+available to us contain implementations of both versions, so we have the freedom
+to use whichever we like better for FreeCalypso.  After studying the fw source
+implementing the two TMFFS protocols, I (Space Falcon) came to the conclusion
+that TMFFS2 is both more capable and more reliable; my guess is that TMFFS1 was
+likely kept around only because some of TI's crappy Weendoze host software
+depended on it.  (See gsm-fw/services/ffs/tmffs.c if you would like to judge
+for yourself.)  Thus TMFFS2 is currently the "officially adopted" version for
+FreeCalypso.
+
+Our fc-tmsh utility (described below) allows a developer-operator to send TMFFS
+"get version" queries to a running GSM fw in both ETM_FFS1 and ETM_FFS2 formats;
+this capability allows us to determine experimentally which protocol (if any) is
+implemented by a given proprietary firmware version.  Experiments reveal that
+Openmoko's moko11 firmware implements TMFFS1, whereas Pirelli's fw implements
+TMFFS2.
+
+The leo2moko-r1 firmware produced by the FreeCalypso project in 2013-10
+implements TMFFS1, simply because that was the selected configuration in the
+found Leonardo source that transitional fw is based on, and that release was
+made before I learned RVTMUX, FFS, ETM and TMFFS properly.  All future
+FreeCalypso firmwares will use TIFFS2, or at least that's the current plan.
+
 Host utility support
 ====================