FreeCalypso > hg > freecalypso-tools
annotate doc/Rvinterf-tools @ 449:b1864e3f8fb4
CHANGES & doc/User-phone-tools: documented AT-over-RVT long strings
extension and the current broken state found in Mot C139 testing
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Wed, 16 Jan 2019 01:21:29 +0000 | 
| parents | 5484dab78c33 | 
| children | 5b88ba62b9ae | 
| rev | line source | 
|---|---|
| 432 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 This document describes the basic usage principles for our rvinterf suite of | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 tools, which is the subset of FC host tools for talking to TI-based GSM devices | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 via the RVTMUX binary packet interface. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 rvtdump | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 ======= | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 Rvtdump is a utility that listens on a serial port, receives traces or any other | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 packets emitted by the running firmware of a GSM device in TI's RVTMUX format, | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 decodes them into readable ASCII and emits them to stdout and/or to a log file. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 It is to be invoked as follows: | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 rvtdump [options] /dev/ttyXXX | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 where the sole non-option argument is the serial port it should open and listen | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 on. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 The available options are: | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 -b | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 Normally the rvtdump process remains in the foreground and emits its | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 output on stdout. The -b option suppresses the normal output and causes | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 rvtdump to put itself in the background: fork at startup, then have the | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 parent exit while the child remains running. -b is not useful and not | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 allowed without -l. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 -B baud | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 Selects which RVTMUX serial channel baud rate our tool should listen | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 for. Defaults to 115200 baud, which is TI's default and is correct for | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 our standard FreeCalypso firmwares, for Openmoko's legacy firmwares and | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 for Pirelli's proprietary fw. Use -B 57600 for Compal's RVTMUX, the | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 one accessible via **16379#. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 -d <file descriptor number> | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 This option is not meant for direct use by human users. It is inserted | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 automatically when rvtdump is launched from fc-xram as the secondary | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 program that immediately takes over the serial channel. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 -l logfile | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 Log all received and decoded packets into the specified file in addition | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 to (without -b) or instead of (with -b) dumping them on stdout. Each | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 line in the log file is also time-stamped; the timestamps are in GMT | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 (gmtime(3)) instead of local time - Spacefalcon the Outlaw dislikes | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 local times. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 rvinterf | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 ======== | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 Rvinterf (the specific program by this name) is an extended version of rvtdump | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 (see above) that decodes and dumps and/or logs any and all output generated by | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 the firmware running on the target just like rvtdump, but also creates a local | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 UNIX domain socket on the host machine to which "client" programs can connect. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 "Client" programs connecting to rvinterf via this local socket interface can: | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 1. Receive copies of selected RVTMUX packets coming from the target; | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 2. Send arbitrary RVTMUX packets toward the target. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 Rvinterf is invoked just like rvtdump: | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 rvinterf [options] /dev/ttyXXX | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 The following options have the same meaning as in rvtdump, see the rvtdump | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 section above for the details: -b, -B, -d and -l. The only difference is that | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 -b without -l is potentially useful and thus allowed. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 Additional rvinterf options which don't exist in rvtdump are: | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 -n | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 Suppress the output on stdout like -b, but don't fork into background. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 This option is passed by "client" programs when they invoke rvinterf | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 behind the scenes instead of connecting to an already-running rvinterf | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 instance. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 -s pathname_for_socket | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 By default the local UNIX domain socket created by rvinterf is bound to | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 /tmp/rvinterf_socket; this option allows any other pathname to be | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 specified. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 -S <file descriptor number> | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 This option is not meant for direct use by human users. It is passed | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 by "client" programs when they invoke rvinterf behind the scenes with | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 an unnamed and unbound socket pair instead of conecting to an already- | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 running rvinterf instance. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 -w number_in_seconds | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 Reliable UART communication with a Calypso GSM device that can | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 potentially enter the so-called "deep sleep" mode requires certain | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 special workarounds that could be described as a bit of an ugly hack: | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 see the Deep-sleep-support article for the gory details. The hack | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 implemented in rvinterf is as follows: if a packet is to be sent to the | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 target and more than a set time has elapsed since the last transmitted | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 packet, the packet is preceded by a "wake-up shot" of 64 0 bytes | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 (outside of a packet, ignored by the fw) and a 100 ms pause. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 The -w option changes the elapsed time threshold at which the "wake-up | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 shot" is sent; the default is 7 s. Specify -w 0 to disable this hack | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 altogether. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 Client programs | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 =============== | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 We have an entire family of so-called "client" programs which connect to | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 rvinterf via the local socket interface and use rvinterf as the back-end engine | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 for communicating with GSM device firmwares. The main ones are fc-fsio, | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 fc-shell and fc-tmsh described in the RVTMUX article, and the less important | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 ones are fc-memdump, fc-dspapidump, fc-readcal and fc-tmsync listed in | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 Host-tools-overview. There is also the fcup-rvtat program which is invoked | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 behind the scenes by fcup-* tools (see User-phone-tools) when they are used | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 with the -R option. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 All of these client programs can work in one of two ways: they can connect to | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 an already running rvinterf process through the UNIX domain socket mechanism, | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 or they can launch their own private instance of rvinterf behind the scenes, | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 using an unnamed and unbound socket pair. (Don't try to have two or more | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 rvinterf instances running on the same serial port, it won't work.) The | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 following command line options are standardized across all of our rvinterf | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 client programs: | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 -p /dev/ttyXXX | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 Don't connect to an already running rvinterf process, instead launch a | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 private instance of rvinterf on the named serial port. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 -B baud | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 -l logfile | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 -w number_in_seconds | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 These options are valid only when -p is used, and are passed through to | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 rvinterf. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 -s pathname_for_socket | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 Connect to a different local UNIX domain socket pathname instead of the | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 default /tmp/rvinterf_socket. This option is valid only when -p is not | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 used. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 145 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 146 Interactive vs. one-shot operation | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 ================================== | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 149 Our main client programs fc-fsio, fc-shell, fc-tmsh and fc-tmsync can operate | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 in both interactive and one-shot modes. If there is a specific command given | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 on the invokation command line, that command is executed in the one-shot mode | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 (the program executes that one command, waits for the response from the target | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 if appropriate, and exits), otherwise each of the listed programs enters its | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 own interactive mode with its own prompt. The more specialized client programs | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 fc-memdump, fc-dspapidump and fc-readcal always operate in the one-shot manner. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 157 fc-fsio, fc-tmsync and the just-listed specialized client programs are | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 synchronous in nature: whether they are used interactively or in a one-shot | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 manner (single command per program invokation), all of their operations are | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 built from command-response primitives: each internal low-level function sends | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 a command packet to the target via rvinterf and waits for a response from the | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 target; not getting a response or getting a wrong or unexpected response is a | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 fatal error. There is no such thing as a no-wait mode (one-shot or otherwise) | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 with these synchronous programs. Furthermore, what appears to be a single | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 command at the high level may consist of a large number of command-response | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 packet exchanges under the hood, and the one-shot mode can be used equally | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 167 easily to run a simple command or a script consisting of many commands. The | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 168 fcup-* -R mechanism (implemented by way of the fcup-rvtat back-end program) is | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 169 also synchronous like the fc-fsio and fc-tmsync family. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 170 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 171 In contrast, fc-shell and fc-tmsh are asynchronous, and they work most naturally | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 in their interactive mode. An interactive fc-shell or fc-tmsh session is a | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 173 select loop that listens simultaneously for both user command input on the | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 174 terminal and packets from the target on the rvinterf socket; user commands cause | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 175 command packets to be sent to the target and any response packets received from | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 the target are decoded and displayed on the terminal, but these two directions | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 177 are completely decoupled from each other. The one-shot mode of operation is | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 178 inherently less natural with these programs, and constitutes a bit of a hack. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 179 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 180 fc-tmsh offers the same repertoire of commands in both interactive and one-shot | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 181 modes, and each of these commands sends a Test Mode command packet to the | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 182 target. The one-shot mode is actually two modes: one-shot with a wait for a | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 183 target response (default) and one-shot with no wait (-n option). One-shot with | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 184 no wait is straighforward: fc-tmsh constructs the requested TM command packet, | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 185 sends it to the target via rvinterf and exits. In the other one-shot mode | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 186 without -n, fc-tmsh sends the command packet to the target and falls into a loop | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 187 processing input from rvinterf; as soon as some (any) packet is received from | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 188 the target on the TM channel, that packet (which is decoded and displayed) is | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 189 considered to be the response and the program exits with a success indication. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 190 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 191 fc-shell is the oddest of the bunch: the set of one-shot commands is a subset | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 192 of those available in the interactive mode, as some of the commands cannot work | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 193 outside of the interactive mode select loop environment. Furthermore, almost | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 194 all of the one-shot commands in fc-shell always operate in the no-wait manner | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 195 whether -n is given or not. The only fc-shell one-shot commands which wait for | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 196 a target response in the absence of -n (similarly to fc-tmsh) are AT commands. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 197 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 198 Startup synchronization hack | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 199 ============================ | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 200 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 201 There is one annoying issue that has been seen with FTDI USB-serial adapters: | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 202 when the serial port served by an FTDI adapter has been receiving serial traffic | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 203 from the target while no host program is running with the port open to read it, | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 204 and then a host program is started, that newly started host program will often | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 205 get some stale or total garbage input from the freshly opened ttyUSBx port on | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 206 startup. In most usage scenarios this issue is not a killer for our rvinterf | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 207 suite, only an annoyance: if rvinterf is started on a serial port with this | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 208 initial garbage, there will be some garbage displayed by rvinterf initially, | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 209 but then it will quickly regain synchronization with the running firmware | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 210 target. If there is any delay between the starting of rvinterf and command- | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 211 response packet exchanges with the target (if rvinterf is run explicitly by the | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 212 operator first and then the client program, or if the client program that | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 213 launches rvinterf is an interactive one), no problems occur: rvinterf will be | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 214 in sync with the target with all initial garbage flushed by the time it needs | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 215 to do the first command-response packet exchange. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 216 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 217 There is one potentially problematic usage scenario, though: consider what | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 218 happens when a one-shot operation is commanded, it is a type of one-shot | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 219 operation that includes waiting for a response from the target, and rvinterf is | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 220 being launched from the client program with -p. In this scenario there will be | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 221 a command packet sent to the target as soon as rvinterf starts up, and the | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 222 client program will expect rvinterf to capture and deliver the target fw's | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 223 response correctly, but there may not be enough time for rvinterf to clear the | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 224 initial garbage presented by the imperfect serial port hardware+driver | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 225 combination. | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 226 | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 227 Our solution to this potential trouble source is a hack: in the special case | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 228 when rvinterf is being launched by the client program with -p and when the | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 229 client operation to be performed falls into the category of one-shot with a wait | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 230 for the target fw response, a 30 ms delay is inserted after the return from the | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 231 vfork call that launches rvinterf and before any actual operations. This hack | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 232 has been deemed to be acceptable because this combination of doing one-shot | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 233 operations while launching rvinterf with -p is not a very sensible way of using | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 234 our rvinterf tools generally, hence it has been deemed acceptable to add a bit | 
| 
5484dab78c33
doc/Rvinterf-tools write-up added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 235 of slowdown to this rather contrived use case. | 
