FreeCalypso > hg > freecalypso-sw
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. |
