FreeCalypso > hg > freecalypso-tools
annotate doc/Rvinterf-tools @ 840:25a182bc031b
rvinterf/include/audio.h: create interface definitions
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 31 Jul 2021 07:33:58 +0000 |
parents | ad503b495e3e |
children | 71edc12b1aa7 |
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 |
762
ad503b495e3e
doc/Rvinterf-tools: document rvinterf -b PID addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
587
diff
changeset
|
69 -b without -l is potentially useful and thus allowed. Additionally rvinterf -b |
ad503b495e3e
doc/Rvinterf-tools: document rvinterf -b PID addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
587
diff
changeset
|
70 records the PID of the backgrounded process in /tmp/rvinterf.pid (inability to |
ad503b495e3e
doc/Rvinterf-tools: document rvinterf -b PID addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
587
diff
changeset
|
71 write to this file produces a non-fatal warning); the intended use case is for |
ad503b495e3e
doc/Rvinterf-tools: document rvinterf -b PID addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
587
diff
changeset
|
72 scripts that run rvinterf -b (perhaps as fc-xram secondary program with the FFS |
ad503b495e3e
doc/Rvinterf-tools: document rvinterf -b PID addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
587
diff
changeset
|
73 editor application), perform some fc-fsio or other manipulations, and then kill |
ad503b495e3e
doc/Rvinterf-tools: document rvinterf -b PID addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
587
diff
changeset
|
74 the backgrounded rvinterf process. |
432
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 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
|
77 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 -n |
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 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
|
81 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
|
82 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
|
83 instance. |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 |
587
5b88ba62b9ae
doc/Rvinterf-tools: rvinterf -P option documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
432
diff
changeset
|
85 -P <boot control name> |
5b88ba62b9ae
doc/Rvinterf-tools: rvinterf -P option documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
432
diff
changeset
|
86 |
5b88ba62b9ae
doc/Rvinterf-tools: rvinterf -P option documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
432
diff
changeset
|
87 See Target-boot-control article. |
5b88ba62b9ae
doc/Rvinterf-tools: rvinterf -P option documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
432
diff
changeset
|
88 |
432
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 -s pathname_for_socket |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 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
|
92 /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
|
93 specified. |
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 -S <file descriptor number> |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 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
|
98 by "client" programs when they invoke rvinterf behind the scenes with |
762
ad503b495e3e
doc/Rvinterf-tools: document rvinterf -b PID addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
587
diff
changeset
|
99 an unnamed and unbound socket pair instead of connecting to an already- |
432
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 running rvinterf instance. |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 -w number_in_seconds |
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 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
|
105 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
|
106 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
|
107 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
|
108 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
|
109 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
|
110 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
|
111 (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
|
112 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 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
|
114 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
|
115 altogether. |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 Client programs |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 =============== |
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 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
|
121 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
|
122 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
|
123 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
|
124 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
|
125 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
|
126 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
|
127 with the -R option. |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 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
|
130 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
|
131 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
|
132 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
|
133 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
|
134 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
|
135 client programs: |
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 -p /dev/ttyXXX |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 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
|
140 private instance of rvinterf on the named serial port. |
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 -B baud |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 -l logfile |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 -w number_in_seconds |
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 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
|
147 rvinterf. |
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 -s pathname_for_socket |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 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
|
152 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
|
153 used. |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 Interactive vs. one-shot operation |
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 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 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
|
159 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
|
160 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
|
161 (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
|
162 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
|
163 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
|
164 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
|
165 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 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
|
167 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
|
168 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
|
169 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
|
170 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
|
171 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
|
172 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
|
173 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
|
174 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
|
175 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
|
176 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
|
177 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
|
178 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
|
179 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 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
|
181 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
|
182 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
|
183 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
|
184 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
|
185 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
|
186 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
|
187 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
|
188 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 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
|
190 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
|
191 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
|
192 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
|
193 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
|
194 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
|
195 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
|
196 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
|
197 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
|
198 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
|
199 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 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
|
201 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
|
202 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
|
203 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
|
204 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
|
205 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
|
206 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 Startup synchronization hack |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 ============================ |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 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
|
211 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
|
212 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
|
213 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
|
214 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
|
215 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
|
216 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
|
217 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
|
218 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
|
219 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
|
220 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
|
221 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
|
222 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
|
223 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
|
224 to do the first command-response packet exchange. |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 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
|
227 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
|
228 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
|
229 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
|
230 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
|
231 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
|
232 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
|
233 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
|
234 combination. |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 |
5484dab78c33
doc/Rvinterf-tools write-up added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 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
|
237 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
|
238 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
|
239 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
|
240 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
|
241 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
|
242 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
|
243 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
|
244 of slowdown to this rather contrived use case. |