comparison doc/RVTMUX @ 430:14618bd924ec

doc/RVTMUX and doc/TIFFS-Overview: updates
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Sat, 21 Jun 2014 21:28:56 +0000
parents 821a26f90968
children 285505f98013
comparison
equal deleted inserted replaced
429:f114f5c547ec 430:14618bd924ec
118 likely kept around only because some of TI's crappy Weendoze host software 118 likely kept around only because some of TI's crappy Weendoze host software
119 depended on it. (See gsm-fw/services/ffs/tmffs.c if you would like to judge 119 depended on it. (See gsm-fw/services/ffs/tmffs.c if you would like to judge
120 for yourself.) Thus TMFFS2 is currently the "officially adopted" version for 120 for yourself.) Thus TMFFS2 is currently the "officially adopted" version for
121 FreeCalypso. 121 FreeCalypso.
122 122
123 Our fc-tmsh utility (described below) allows a developer-operator to send TMFFS 123 Our fc-tmsh utility (see below and ../rvinterf/README) allows a developer-
124 "get version" queries to a running GSM fw in both ETM_FFS1 and ETM_FFS2 formats; 124 operator to send TMFFS "get version" queries to a running GSM fw in both
125 this capability allows us to determine experimentally which protocol (if any) is 125 ETM_FFS1 and ETM_FFS2 formats; this capability allows us to determine
126 implemented by a given proprietary firmware version. Experiments reveal that 126 experimentally which protocol (if any) is implemented by a given proprietary
127 Openmoko's moko11 firmware implements TMFFS1, whereas Pirelli's fw implements 127 firmware version. Experiments reveal that Openmoko's moko11 firmware
128 TMFFS2. 128 implements TMFFS1, whereas Pirelli's fw implements TMFFS2.
129 129
130 The leo2moko-r1 firmware produced by the FreeCalypso project in 2013-10 130 The leo2moko-r1 firmware produced by the FreeCalypso project in 2013-10
131 implements TMFFS1, simply because that was the selected configuration in the 131 implements TMFFS1, simply because that was the selected configuration in the
132 found Leonardo source that transitional fw is based on, and that release was 132 found Leonardo source that transitional fw is based on, and that release was
133 made before I learned RVTMUX, FFS, ETM and TMFFS properly. All future 133 made before I learned RVTMUX, FFS, ETM and TMFFS properly. All future
136 Host utility support 136 Host utility support
137 ==================== 137 ====================
138 138
139 As one would naturally expect, the FreeCalypso project has developed some host 139 As one would naturally expect, the FreeCalypso project has developed some host
140 tools that allow a PC running GNU/Linux (or other Unix systems) to interface to 140 tools that allow a PC running GNU/Linux (or other Unix systems) to interface to
141 running firmwares on GSM devices via RVTMUX. The following tools are currently 141 running firmwares on GSM devices via RVTMUX. See the rvinterf subtree of
142 available: 142 freecalypso-sw for the source and documentation.
143
144 rvtdump Opens the serial port, decodes TI's binary packet protocol, and
145 simply dumps every received/decoded packet on stdout in a human-
146 readable form. No provision for sending anything to the target.
147 Intended use: observing the debug trace output which all TI
148 firmwares emit as standard "background noise". This utility
149 allows one to observe/log/study the "noise" that appears on
150 Pirelli's USB-serial port (running Pirelli's original fw),
151 as well as that emitted on the IrDA (headset jack) port on the
152 GTA02 by mokoN/leo2moko firmwares.
153
154 rvinterf Provides a bidirectional interface to RVTMUX on the host side.
155 It dumps and/or logs the "background noise" emitted by the
156 target just like rvtdump, but also creates a local UNIX domain
157 socket on the host machine to which other programs can connect,
158 replicating the MUXing function on the host side.
159
160 fc-tmsh Interactive asynchronous test mode shell. This program connects
161 to a target GSM device through rvinterf and allows a developer-
162 operator to send various ETM commands to the target. ETM
163 responses are decoded (sometimes only lightly) and displayed.
164 fc-tmsh is fully asynchronous in that it continuously listens
165 (via select(2)) for both user input and for packets from the
166 target at the same time, translating any user-entered commands
167 into packets to the target and conversely, scribbling on the
168 terminal when a packet arrives from the target. It has no
169 knowledge of any correspondence between commands and responses
170 they normally elicit.
171
172 fc-tmsh implements some low-level ffs2 commands (see above regarding our design
173 decision to use TMFFS2 rather than TMFFS1), but it is already known that this
174 implementation approach is a dead end, and a different host utility is planned
175 to be written for full FFS read/write access via the TMFFS2 protocol.