OpenOCD is a tool to connect with the target chip over JTAG and similar transports. It also provides a GDB server which is an “intermediate” when debugging software on the chip with GDB.
It is recommended to use the regular upstream version of OpenOCD instead of the RISC-V downstream fork.
It is trivial to install OpenOCD because we manage the dependency with Bazel.
The Bazel-built OpenOCD binary lives at
It’s not runnable, but we also provide a runnable wrapper:
OpenOCD also ships with a library of config files.
Instead of using use whichever config files happen to be installed on the system, prefer the Bazel-exposed config files that match OpenOCD source.
Currently, we only expose OpenTitan’s default JTAG adapter config as
# Manually run OpenOCD: ./bazelisk.sh run //third_party/openocd -- arg1 arg2 # Get the path of the OpenOCD binary: ./bazelisk.sh outquery //third_party/openocd:openocd_bin