...
It is also possible to drive JTAG with a firmware core and use the Xilinx XVC protocol to remotely access JTAG. The SLAC surf library provides the necessary components (a firmware block and a software XVC server which must be run on a linux box with connectivity to the firmware).
Note: when operating over a slow connection then I get better response when I start a Xilinx hw_server on some machine that is close to the xvcSrv (rather than tunneling XVC from the remote machine):
xvcSrv
on a machine with best fast connectivity to the FPGA xvcSrv -t <target_ip>[:<udp_port>]
hw_server
on the same or a close-by machine (no special arguments necessary); if you run Vivado on-site then vivado takes care of this step and you may skip step 3.ssh
tunnel to get to the hw_server
. You can in fact use ssh
to directly launch the server and tunnel the connection (assuming hw_server
is on the PATH):ssh -L 3121:localhost:3121 gateway_machine hw_server
ssh
tunnel was opened on local port 3121 Vivado will find it)% open_hw_target -xvc_url <machine_where_xvcSrv_runs>:2542
...