-
Notifications
You must be signed in to change notification settings - Fork 15
/
ftdiJTAG.1
123 lines (123 loc) · 6.08 KB
/
ftdiJTAG.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
.\" XVC FTDI JTAG Copyright (c) 2021, The Regents of the University of
.\" California, through Lawrence Berkeley National Laboratory (subject to
.\" receipt of any required approvals from the U.S. Dept. of Energy). All
.\" rights reserved.
.\"
.\" If you have questions about your rights to use or distribute this software,
.\" please contact Berkeley Lab's Intellectual Property Office at
.\" [email protected].
.\"
.\" NOTICE. This Software was developed under funding from the U.S. Department
.\" of Energy and the U.S. Government consequently retains certain rights. As
.\" such, the U.S. Government has been granted for itself and others acting on
.\" its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the
.\" Software to reproduce, distribute copies to the public, prepare derivative
.\" works, and perform publicly and display publicly, and to permit others to
.\" do so.
.TH FTDI_JTAG 1 2020-06-12 "LBNL" "Lawrence Berkeley National Laboratory"
.SH NAME
ftdiJTAG \- Xilinx Virtual Cable Server for FTDI FT232H/FT2232H/FT4232H
.SH SYNOPSIS
.nh
.ad l
.TP 9.1em
.B ftdiJTAG
.RB [ \-a\ address ]
.RB [ \-p\ port ]
.RB [ \-d\ vendor:product\fR[\fB:\fR[\fBserial\fR]] ]
.RB [ \-g\ DirectionValue\fR[\fB:DirectionValue...\fR]\fB ]
.RB [ \-c\ frequency ]
.RB [ \-q ]
.RB [ \-B ]
.RB [ \-L ]
.RB [ \-R ]
.RB [ \-S ]
.RB [ \-U ]
.RB [ \-X ]
.hy
.SH DESCRIPTION
This server converts Xilinx Virtual Cable requests to FTDI Multi-Protocol Synchronous Serial Engine USB commands.
.IP \-a\ address
Address of network interface on which to listen for connections from XVC clients. Default is 127.0.0.1 (localhost). Specify 0.0.0.0 to listen on all networks.
.IP \-p\ port
TCP port number on which to listen. Default is 2542.
.IP \-d\ vendor:product[:[serial]]
USB vendor, product and optional serial number of the FTDI chip to be used. Default is vendor 0403, product 6010 (FT2232H) or 6011 (FT4432H) or 6014 (FT232H), and any serial number. Vendor and product numbers are in hexadecimal.
.IP \-g\ DirectionValue[:DirectionValue...]
Colon-separated pairs of hexadecimal values (0x00 to 0xFF) specifying the direction and state
of the most significant four bits of the FTDI general-purpose I/O port.
The first value of each pair sets the directions and the
second value sets the states of the four I/O port bits.
A one bit in the direction configures the corresponding bit in the port as an output.
A zero bit in the direction configures the corresponding bit in the port as an input.
The least significant bit in the direction and state value is applied to bit 4 of the I/O port and the most significant bit to bit 7 of the I/O port.
By default all four pins are inputs.
Multiple direction/state pairs take effect in turn separated
by about 100 milliseconds. This can be used to generate a startup reset pulse, for example.
.IP \-c\ f
Lock the JTAG clock at the specified frequency (ignore XVC settck: commands).
The numeric frequency argument can be followed by a 'k' or an 'M' to multiply the value by 1000 or 1000000, respectively.
.IP -q
Quiet mode. Don't print USB device information on startup nor client connect/disconnect messages during operation. Useful when running this server in the background or as a daemon.
.IP -B
Use FTDI port B as the JTAG interface rather than the default port A.
.IP -L
Put JTAG port into loopback mode.
.IP -R
Report on runt reply packets, namely those shorter than three bytes.
Normally these are silently ignored.
Some FTDI devices return a few 2 byte, modem status only, replies.
.IP -S
Show I/O statistics when client disconnects.
.IP -U
Enable diagnostic messages for USB transactions.
.IP -X
Enable diagnostic messages for Xilinx virtual cable transactions.
.SH USAGE
The Xilinx hardware manager does not automatically detect the presence of this server. The following procedure is required after starting the server.
.IP Vivado:
Click 'Open Hardware Manager'.
.br
Click 'Open Target'.
.br
Click 'Open New Target...'.
.br
In the 'Open New Hardware Target' window that pops up, click 'Next>'.
.br
Set the menu to 'Connect to Local server', then click 'Next>'.
This menu item must be chosen even if the server was started on a different machine.
.br
If the desired device is not present in the 'Hardware Targets' table, click the 'Add Xilinx Virtual Cable (XVC)' button and set the IP address and port corresponding to this server.
.br
Ensure that the desired device is highlighted in the 'Hardware Targets' table, then click 'Next>'.
.br
Click 'Finish'.
.IP Vitis:
Open the XSCT console.
.br
Enter the command 'connect -xvc-url localhost:2542' (substitute the appropriate host and port information if the server is not using the defaults).
.br
Specify the 'Local' connection when offered the option, for example in the 'Program FPGA' window.
.SH USE\ WITH\ DOCKER
I run the Xilinx tools in a Linux Docker container on my OS X machine. To allow them to connect to the JTAG port of my development hardware I run ftdiJTAG on the OS X machine as normal, but in the Vivado 'Add Xilinx Virtual Cable (XVC)' window I specify the host as 'host.docker.internal' rather than the default 'localhost'.
.SH REFERENCES
.nh
.IP 1. 3em
https:/\:/\:www.xilinx.com/\:support/\:documentation/\:application_notes/\:xapp1251-xvc-zynq-petalinux.pdf
.IP 2.
https://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT4232H.pdf
.IP 3.
https:/\:/\:www.ftdichip.com/\:Support/\:Documents/\:AppNotes/\:AN_108_Command_Processor_for_MPSSE_and_MCU_Host_Bus_Emulation_Modes.pdf
.IP 4.
https://libusb.info
.SH EXAMPLES
.ft CW
LBNL Marble: -c 30M -g 11 \fR(Applies to Marble Mini, too)\f(CW
.br
Xilinx ZCU111: -c 30M -g 44 \fR(\f(CW-g 40:44 \fRto pulse power-on reset line)
.SH CAVEATS
The Xilinx virtual cable protocol provides no means for the server to validate or authenticate a client. Be very careful when specifying an address and port accessible from the wider internet.
.PP
Tests show that the Xilinx hw_server using the new protocol programs devices about three times faster than this server.
.PP
If more than one USB device matches the vendor:product:serial values the first one found will be used. There is no indication from \fBftdiJTAG\fR that the match is not unique.