FreeCalypso > hg > freecalypso-sw
annotate doc/RVTMUX @ 923:10b4bed10192
gsm-fw/L1: fix for the DSP patch corruption bug
The L1 code we got from the LoCosto fw contains a feature for DSP CPU load
measurement. This feature is a LoCosto-ism, i.e., not applicable to earlier
DBB chips (Calypso) with their respective earlier DSP ROMs. Most of the
code dealing with that feature is conditionalized as #if (DSP >= 38),
but one spot was missed, and the MCU code was writing into an API word
dealing with this feature. In TCS211 this DSP API word happens to be
used by the DSP code patch, hence that write was corrupting the patched
DSP code.
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 19 Oct 2015 17:13:56 +0000 |
parents | 14618bd924ec |
children | 285505f98013 |
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. |