# HG changeset patch # User Michael Spacefalcon # Date 1391758176 0 # Node ID 9c34d938a6455ac08e8f5e0f833e768397ac5790 # Parent cd043e690621e3e734051d40ee79819b0b3ce0ca doc/RVTMUX: TMFFS protocol versions documented diff -r cd043e690621 -r 9c34d938a645 doc/RVTMUX --- 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 ====================