FreeCalypso > hg > freecalypso-sw
annotate doc/RVTMUX @ 992:a7b0b426f9ca
target-utils: boot ROM UART autodetection revamped
The new implementation should work with both the familiar Calypso C035
boot ROM version found in our regular targets as well as the older
Calypso F741979B version found on the vintage D-Sample board.
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Wed, 30 Dec 2015 21:28:41 +0000 |
parents | 285505f98013 |
children |
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 |
973
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
63 Debug trace output |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
64 ================== |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
65 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
66 All GSM device firmwares that are based on TI's Calypso chipset reference fw |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
67 continuously emit quite voluminous debug trace output on their RVTMUX serial |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
68 port, whether it is hidden or exposed on a given device. Like all RVTMUX |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
69 traffic, this debug trace output takes the form of binary packets as explained |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
70 above, but the content of these packets is mostly ASCII with some binary header |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
71 bytes prepended. FreeCalypso host utility rvtdump captures all serial output |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
72 from a GSM device's RVTMUX port, parses the packet structure and displays this |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
73 output in line-oriented pure ASCII with all binary parts decoded. |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
74 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
75 Test Mode commands |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
76 ================== |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
77 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
78 The other major use of the RVTMUX interface is sending so-called Test Mode |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
79 commands from an external host to a running GSM device. Depending on the |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
80 firmware version, a GSM device can be commanded to do any of the following |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
81 things through this mechanism: |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
82 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
83 * Exercise RF test modes, e.g., transmit continuously at a set frequency and |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
84 power level; |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
85 * Read and write arbitrary memory locations in the Calypso ARM7 address space; |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
86 * Read and write ABB chip registers; |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
87 * Reboot or power off; |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
88 * Access and manipulate the device's flash file system (FFS). |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
89 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
90 In the segment of history of interest to us TI has produced two different |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
91 target firmware components that can receive, interpret and act upon Test Mode |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
92 command packets: |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
93 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
94 * The original Test Mode component of Layer 1, called L1TM or TML1: this |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
95 component handles all RF test modes (needed for RF calibration on device |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
96 production lines), and originally it also implemented memory and ABB register |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
97 read and write commands, and provided access to TMFFS1 (see below). In the |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
98 original implementation this component registered itself as the handler for |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
99 the "TM" RVTMUX channel (RVT packet type 0x14), so it would receive all TM |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
100 packets sent to the device. |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
101 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
102 * Enhanced Test Mode (ETM) is a later invention. It registers itself (instead |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
103 of the old TM in L1) with RVT as the handler for the "TM" RVTMUX channel, and |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
104 then provides a registration service of its own, such that various components |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
105 in the fw suite can register to receive external command packets passing |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
106 first through RVT, then through ETM, and can send responses passing through |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
107 ETM, then through RVT back to the external host. If a given fw version |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
108 contains both ETM and L1TM, then L1TM registers itself with ETM; an external |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
109 host would send exactly the same binary command packets to exercise RF test |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
110 modes, but inside the firmware they now pass through ETM on their way to L1TM. |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
111 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
112 The ETM_CORE module contained within ETM itself provides some low-level debug |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
113 commands: by sending the right binary command packets to the GSM device via the |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
114 RVTMUX serial channel, an external host can examine or modify any memory |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
115 location and any hardware register, cause the device to reset, etc. Prior to |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
116 ETM some of these functions (but not all) could be exercised through older TM3 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
117 commands, but in FreeCalypso we became familiar with the ETM versions of these |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
118 commands long before the older ones because we got the ETM component in full |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
119 source form, whereas our copy of TCS211 (TI's reference fw) has L1TM in a |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
120 binary library. |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
121 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
122 Our TCS211/leo2moko reference fw has both ETM and L1TM, thus it accepts both |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
123 ETM and TM3 command packets. ETM commands (including TMFFS2, see below) work |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
124 on Pirelli's fw, but Mot/Compal's original fw for the C139 has only the |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
125 original non-enhanced Test Mode, not ETM. |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
126 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
127 FFS access via TM/ETM |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
128 ===================== |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
129 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
130 One of the essential facilities provided in one form or another in all known |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
131 incarnations of the Test Mode mechanism is the ability to access and manipulate |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
132 the GSM device's flash file system (FFS). See TIFFS-Overview for a description |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
133 of this file system. TI's TMFFS1 and TMFFS2 protocols provide a command and |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
134 response packet interface to the FFS API functions inside the fw, and enable an |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
135 external host connected to the GSM device via the RVTMUX channel to perform |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
136 arbitrary read and write operations on the device file system. |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
137 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
138 In the segment of history of interest to us TI has produced two different |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
139 and entirely incompatible versions of the TMFFS protocol: TMFFS1 and TMFFS2. |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
140 Or rather, what is now called TMFFS1 was originally just TMFFS, and then came |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
141 TMFFS2. TMFFS2 works only through ETM, whereas TMFFS1 predates ETM: in the |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
142 original implementation the tm_ffs() function in the FFS code was called from |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
143 L1TM code. |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
144 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
145 Our copy of TCS211 reference fw includes the source for both TMFFS1 and TMFFS2; |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
146 it is theoretically possible to build a firmware image that includes both TMFFS |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
147 versions (they won't conflict because they respond to different command |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
148 packets), but it is pretty clear that TI never intended to have both enabled |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
149 at the same time. Our copy of TCS211 came with TMFFS1 enabled and we didn't |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
150 change it when we made the moko12 (leo2moko-r1) fw release for the Openmoko |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
151 community (the previous proprietary mokoN firmwares also implement TMFFS1), |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
152 but we have subsequently switched to TMFFS2 for our current TCS211-based work. |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
153 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
154 Pirelli's fw implements TMFFS2: we don't have any source for this fw, but our |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
155 FreeCalypso host utilities written to talk the TMFFS2 protocol based on our |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
156 available TCS211 source work beautifully when run against Pirelli's fw. |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
157 |
270
d1388095ab27
doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
158 Use in FreeCalypso |
d1388095ab27
doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
159 ================== |
d1388095ab27
doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
160 |
d1388095ab27
doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
161 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
|
162 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
|
163 use TI's RiViera framework lifted directly out of the TCS211 reference fw, and |
973
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
164 that includes the RVT module and the RVTMUX interface it presents. Our GSM fw |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
165 emits the same 3 kinds of debug traces (RV, L1 and GPF) as the pre-existing |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
166 firmwares with which we are seeking functional parity, and for Test Mode |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
167 functionality we have the option of including ETM, TMFFS1 and/or TMFFS2 in our |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
168 firmware builds. (Both TMFFS versions require ETM in our implementation, and |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
169 it is possible to build a firmware image with both included.) |
270
d1388095ab27
doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
170 |
973
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
171 We have adopted ETM and TMFFS2 as the standard combination for FreeCalypso, |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
172 i.e., ETM_CORE for memory and ABB register reads and writes and TMFFS2 for |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
173 external FFS access. We needed to develop our own host tools for operating on |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
174 GSM device FFS via one of the two TMFFS protocols, and after studying the fw |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
175 source implementing both, I (Space Falcon) came to the conclusion that TMFFS2 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
176 is both more capable and more reliable; my guess is that TMFFS1 was likely kept |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
177 around only because some of TI's crappy Weendoze host software depended on it. |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
178 (See gsm-fw/services/ffs/tmffs.c if you would like to judge for yourself.) |
270
d1388095ab27
doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
179 |
973
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
180 We have the following host tools for communicating with TI-based GSM firmwares |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
181 (both our own and some of the existing proprietary ones): |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
182 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
183 rvtdump This tool produces a human-readable dump of all output emitted |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
184 by a TI-based GSM fw in the form of RVTMUX binary packets. It |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
185 can also log this dump to a file. |
270
d1388095ab27
doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
186 |
973
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
187 rvinterf This tool is a superset of rvtdump: it not only dumps and/or |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
188 logs all output from the GSM fw, but also provides a mechanism |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
189 for sending command packets to it. |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
190 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
191 Rvinterf is the engine behind the following host tools that send Test Mode |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
192 commands to a target: |
270
d1388095ab27
doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
193 |
973
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
194 fc-tmsh This is our basic tool for sending Test Mode commands to a |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
195 running GSM fw. It is strictly asynchronous in that commands |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
196 entered by the operator get sent to the target, and any response |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
197 packets received from the target are displayed as they come in. |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
198 The tool has no knowledge of any correspondence between commands |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
199 being sent and whatever responses they should elicit, i.e., it |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
200 is perfectly suited for experimental discovery of firmware |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
201 behaviour in response to Test Mode commands. |
270
d1388095ab27
doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
202 |
973
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
203 This tool was written before we realized that there was/is an |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
204 older, more basic Test Mode predating ETM, hence in many place |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
205 we say "ETM" when we really should have said "TM". Oh well... |
270
d1388095ab27
doc/RVTMUX write-up
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
206 |
973
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
207 fc-fsio This tool speaks the TMFFS2 protocol and allows a user or |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
208 developer to perform a wide range of operations on the file |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
209 system of a GSM device. It operates synchronously, i.e., it |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
210 sends ETM/TMFFS2 commands and expects responses in strict |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
211 lock-step; a single user command may translate into a large |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
212 number of ETM/TMFFS2 command packet exchanges. |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
213 |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
214 AT commands over RVTMUX |
272
9c34d938a645
doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
270
diff
changeset
|
215 ======================= |
9c34d938a645
doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
270
diff
changeset
|
216 |
973
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
217 There is one more use to which we put the RVTMUX debug serial interface that is |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
218 an original FreeCalypso invention: communicating with the AT command interpreter |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
219 (ATI). TI's original architecture assumes that if a product is to offer a |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
220 standard AT command interface (the product is either a GSM/GPRS modem for which |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
221 this AT command interface is the sole mode of usage or a feature phone that |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
222 offers a data port as one of its features), then it will be presented on a |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
223 dedicated UART separate from RVTMUX. |
272
9c34d938a645
doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
270
diff
changeset
|
224 |
973
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
225 However, many of our target devices have only one UART practically accessible, |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
226 and even when we use Openmoko's modem as our development platform, the RVTMUX |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
227 interface is more convenient because it connects externally, whereas the MODEM |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
228 UART is connected to the application processor of the smartphone. Therefore, |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
229 we developed a way to pass AT commands over RVTMUX. We created a new RVTMUX |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
230 channel for this interface and assigned it RVT packet type 0x1A. Packets sent |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
231 from an external host to the GSM device carry AT commands and SMS string input, |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
232 whereas packets flowing the other way carry ATI's responses to commands and |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
233 asynchronous notifications such as incoming calls. |
272
9c34d938a645
doc/RVTMUX: TMFFS protocol versions documented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
270
diff
changeset
|
234 |
973
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
235 The host utility for talking AT commands to a FreeCalypso GSM device via RVTMUX |
285505f98013
doc/RVTMUX: major updates triggered by new understanding of TM/ETM relationship
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
430
diff
changeset
|
236 is fc-shell; it works via rvinterf just like fc-fsio and fc-tmsh. |