xvc-server-debugbridge
Ready-to-run Xilinx Virtual Cable (XVC) 1.0 server for AMD Debug Bridges on Linux.
It provides the xvc-bridge binary, which exposes a Debug Bridge instantiated in your FPGA design over TCP so tools like Vivado can reach it.
This crate is part of the xvc-rs project and builds on xvc-server.
Requirements
- The SoC must run Linux; bare-metal or other operating systems are not supported. If you believe to have a use case for those, please open a feature request.
- A Debug Bridge (or an equivalent AXI-to-JTAG bridge) instantiated on the target FPGA.
- Permission to access the chosen device node, typically
root. Depending on the backend, this is one of/dev/xilinx_xvc_driver,/dev/uioN, or/dev/mem.
Installation
The target SoC often has no internet access, so a ready-to-run binary for AMD SoCs (aarch64 Linux) is available on the releases page. Download it, copy it to the SoC, and run it there.
Alternative installations
If the target has internet access, install it directly with cargo:
The server usually runs on the SoC's ARM core. To build on the host and deploy only the binary, cross-compile with cross:
Usage
xvc-bridge picks a backend automatically, or you can select one explicitly:
# Auto-detect the backend
# Xilinx kernel driver (path is optional; auto-detected if omitted)
# UIO device (path is optional; auto-detected if omitted)
# Raw memory-mapped bridge at a physical address
The server binds to 0.0.0.0:2542 by default; override with --ip and --port.
See xvc-bridge --help for all options.
Automated backend selection
Without an explicit backend, xvc-bridge probes for one in this order:
- Kernel driver: used if the
/dev/xilinx_xvc_driverdevice node exists. - UIO driver: used if a Userspace I/O device named
debug_bridgeis present.
If neither is found, the server exits; select a backend explicitly as shown above.
Logging
Diagnostics go through env_logger (default level info). Control verbosity with RUST_LOG:
RUST_LOG=debug