annotate doc/RVTMUX @ 801:c64bfc13292c

aci: all cmh*.c compile for the sans-data configuration
author Space Falcon <falcon@ivan.Harhan.ORG>
date Sun, 05 Apr 2015 04:16:57 +0000
parents 14618bd924ec
children 285505f98013
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
270
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
1 TI's Calypso GSM/GPRS baseband processor chip has not one but two UART serial
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
2 ports, called "MODEM" and "IrDA" in the hardware documentation. In hardware
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
3 terms, both support basic data-leads-only UART operation at a fixed baud rate,
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
4 but their extended capabilities differ: the IrDA UART adds IrDA capability (no
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
5 surprise), whereas the MODEM UART adds hardware flow control and autobaud. If
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
6 one is not implementing an actual IrDA interface, then the so-called "IrDA"
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
7 UART becomes a strict subset of the MODEM one in terms of hw capabilities -
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
8 just an extra UART, but a somewhat less capable one.
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
9
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
10 In a classic modem design such as that present in the GTA0x smartphones made by
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
11 FIC/Openmoko, the Calypso presents a standard AT command interface on its MODEM
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
12 UART port. (In the case of GTA0x phones this serial channel is wired to the
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
13 phone's application processor; in a standalone modem it would be wired to a
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
14 USB-serial chip or even to a classic RS-232 DB25 port.) However, what is less
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
15 known is that the standard firmware for such modems simultaneously presents an
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
16 entirely different interface on the IrDA UART - an interface intended for
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
17 development, debugging and factory production testing (which includes RF
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
18 calibration and IMEI etc programming), rather than for "normal" end users.
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
19
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
20 Normally this debug/development serial interface (called RVTMUX as will be
272
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
21 explained momentarily) is hidden from "ordinary" users - for example, on FIC
270
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
22 GTA0x phones it is wired to the analog headset jack through a hardware switch
388
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
23 which needs to be enabled through a GPIO signal from the AP. On Mot C139 and
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
24 its siblings the situation is similar: one needs to key in the secret magic
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
25 sequence **16379#, and then the firmware presents a hidden menu for switching
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
26 the analog headset jack between its "normal" function and the UART carrying
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
27 RVTMUX.
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
28
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
29 But there also exist some oddball devices on which the RVTMUX interface is
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
30 presented "in your face". The Pirelli DP-L10 phone has a USB charging port
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
31 which is also wired (through a CP2102 USB-serial chip) to the IrDA UART on the
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
32 Calypso - that's right, IrDA, not MODEM - a design decision with which this
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
33 hacker strongly disagrees. (It'll definitely be wired to the MODEM UART
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
34 instead on our own semi-clone of this phone, but I digress.) Apparently Foxconn
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
35 (the designers of this phone) had no desire to provide a standard AT command
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
36 interface, and instead the only "official" way to use the "data" function of
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
37 their USB port (rather than the charging function) is for their "PC sync"
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
38 feature, i.e., their proprietary Weendoze software. And guess what, their
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
39 proprietary "PC sync" feature works over TI's RVTMUX interface, as that is
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
40 what's presented on Calypso's IrDA UART behind the CP2102!
270
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
41
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
42 OK, so what is this RVTMUX? RV stands for RiViera, an application framework
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
43 which TI added to their GSM firmware suite in the early 2000s, T stands for
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
44 trace, and MUX stands for multiplexor. It's a binary packet interface, although
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
45 many of these packets contain ASCII debug messages inside. The framing format
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
46 is the same in both directions: each packet begins and ends with an STX (0x02)
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
47 byte, all payload bytes except 0x02 and 0x10 are sent literally, and there is a
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
48 DLE (0x10) byte prepended before any 0x02 or 0x10 in the payload. It's the same
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
49 general principle as asynchronous HDLC (RFC 1662): packets can contain any
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
50 binary data, and the framing provides packet boundaries - although TI's version
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
51 is a little less robust than async-HDLC when it comes to recovering after lost
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
52 synchronization.
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
53
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
54 The firmware suite component responsible for actually sending and receiving
388
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
55 these packets over the assigned UART port (usually IrDA, but can be MODEM too,
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
56 as on Compal phones for example) is called RVT (RiViera Trace), and it
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
57 implements a MUX function. There are several logical channels multiplexed over
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
58 one physical serial port, and the first byte of every packet indicates which
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
59 logical channel it belongs to. Any component within the GSM firmware suite can
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
60 send packets to RVT for transmission on this serial interface, and can also
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
61 register to receive packets beginning with a particular type ID byte.
270
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
62
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
63 Use in FreeCalypso
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
64 ==================
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
65
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
66 The FreeCalypso project has adopted the same general firmware architecture as
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
67 that exhibited by TI's standard firmwares from the Moko/Pirelli time frame. We
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
68 use TI's RiViera framework lifted directly out of the TCS211 reference fw, and
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
69 that includes the RVT module and the RVTMUX interface it presents. At the
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
70 present time (early development stage, none of the actual GSM functionality has
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
71 been integrated yet) this RVTMUX interface is put to the following uses in our
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
72 own gsm-fw:
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
73
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
74 * Debug trace output from various components sent via the rvf_send_trace()
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
75 function - it is the RiViera Trace output in the proper sense;
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
76
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
77 * The ETM module and the associated FFS access protocol described below.
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
78
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
79 In the existing proprietary firmwares which serve as our reference, the RVTMUX
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
80 serial channel is continuously spewing very voluminous debug output. This debug
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
81 output exhibits 3 different packet types: RV traces described above, and also
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
82 L1 and G23 traces, each in its own format. We expect that our own gsm-fw will
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
83 become just like these reference versions in this regard, once we integrate
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
84 those code layers.
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
85
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
86 ETM and FFS access
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
87 ==================
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
88
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
89 Another component which we have lifted out of the TCS211 reference fw is ETM,
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
90 which stands for Enhanced Test Mode. This module registers its own "top level"
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
91 protocol over RVTMUX, and provides a registration service of its own, such that
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
92 various components in the fw suite can register to receive external command
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
93 packets passing first through RVT, then through ETM, and can send responses
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
94 passing through ETM, then through RVT back to the external host.
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
95
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
96 The ETM_CORE module contained within ETM itself provides some low-level debug
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
97 commands: by sending the right binary command packets to the GSM device via the
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
98 RVTMUX serial channel, an external host can examine or modify any memory
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
99 location and any hardware register, cause the device to reset, etc.
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
100
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
101 The only other ETM-based functionality currently integrated in our gsm-fw
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
102 besides ETM_CORE is TMFFS (Test Mode for FFS), which is the external access
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
103 channel to the device file system - see TIFFS-Overview. The TMFFS1 and TMFFS2
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
104 protocols provide a command/response packet interface to the FFS API functions
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
105 inside the fw, and enable an external host connected to the GSM device via the
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
106 RVTMUX channel to perform arbitrary read and write operations on the device
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
107 file system.
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
108
272
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
109 TMFFS protocol versions
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
110 =======================
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
111
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
112 TI made two different and entirely incompatible versions of the TMFFS protocol
388
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
113 for accessing a device's FFS via RVT/ETM: TMFFS1 and TMFFS2. The fw sources
272
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
114 available to us contain implementations of both versions, so we have the freedom
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
115 to use whichever we like better for FreeCalypso. After studying the fw source
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
116 implementing the two TMFFS protocols, I (Space Falcon) came to the conclusion
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
117 that TMFFS2 is both more capable and more reliable; my guess is that TMFFS1 was
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
118 likely kept around only because some of TI's crappy Weendoze host software
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
119 depended on it. (See gsm-fw/services/ffs/tmffs.c if you would like to judge
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
120 for yourself.) Thus TMFFS2 is currently the "officially adopted" version for
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
121 FreeCalypso.
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
122
430
14618bd924ec doc/RVTMUX and doc/TIFFS-Overview: updates
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 388
diff changeset
123 Our fc-tmsh utility (see below and ../rvinterf/README) allows a developer-
14618bd924ec doc/RVTMUX and doc/TIFFS-Overview: updates
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 388
diff changeset
124 operator to send TMFFS "get version" queries to a running GSM fw in both
14618bd924ec doc/RVTMUX and doc/TIFFS-Overview: updates
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 388
diff changeset
125 ETM_FFS1 and ETM_FFS2 formats; this capability allows us to determine
14618bd924ec doc/RVTMUX and doc/TIFFS-Overview: updates
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 388
diff changeset
126 experimentally which protocol (if any) is implemented by a given proprietary
14618bd924ec doc/RVTMUX and doc/TIFFS-Overview: updates
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 388
diff changeset
127 firmware version. Experiments reveal that Openmoko's moko11 firmware
14618bd924ec doc/RVTMUX and doc/TIFFS-Overview: updates
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 388
diff changeset
128 implements TMFFS1, whereas Pirelli's fw implements TMFFS2.
272
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
129
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
130 The leo2moko-r1 firmware produced by the FreeCalypso project in 2013-10
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
131 implements TMFFS1, simply because that was the selected configuration in the
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
132 found Leonardo source that transitional fw is based on, and that release was
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
133 made before I learned RVTMUX, FFS, ETM and TMFFS properly. All future
388
821a26f90968 doc/RVTMUX: minor fixes
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 273
diff changeset
134 FreeCalypso firmwares will use TMFFS2, or at least that's the current plan.
272
9c34d938a645 doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 270
diff changeset
135
270
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
136 Host utility support
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
137 ====================
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
138
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
139 As one would naturally expect, the FreeCalypso project has developed some host
d1388095ab27 doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
140 tools that allow a PC running GNU/Linux (or other Unix systems) to interface to
430
14618bd924ec doc/RVTMUX and doc/TIFFS-Overview: updates
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 388
diff changeset
141 running firmwares on GSM devices via RVTMUX. See the rvinterf subtree of
14618bd924ec doc/RVTMUX and doc/TIFFS-Overview: updates
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 388
diff changeset
142 freecalypso-sw for the source and documentation.