xvc-server-debugbridge 0.2.1

Backend implementations of the XVC (Xilinx Virtual Cable) server for AMD Debug Bridges
xvc-server-debugbridge-0.2.1 is not a library.

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:

cargo install xvc-server-debugbridge

The server usually runs on the SoC's ARM core. To build on the host and deploy only the binary, cross-compile with cross:

cross build --release -p xvc-server-debugbridge --target aarch64-unknown-linux-gnu

Usage

xvc-bridge picks a backend automatically, or you can select one explicitly:

# Auto-detect the backend
xvc-bridge

# Xilinx kernel driver (path is optional; auto-detected if omitted)
xvc-bridge kernel-driver /dev/xilinx_xvc_driver

# UIO device (path is optional; auto-detected if omitted)
xvc-bridge uio-driver /dev/uio0

# Raw memory-mapped bridge at a physical address
xvc-bridge dev-mem-driver 0xA0000000

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:

  1. Kernel driver: used if the /dev/xilinx_xvc_driver device node exists.
  2. UIO driver: used if a Userspace I/O device named debug_bridge is 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 xvc-bridge uio-driver /dev/uio0