System reset in OpenRISC ordb2 board


The new OpenRISC ordb2 from ORSoC is a very nice devboard to have, especially with its support of multiple services like FPGA JTAG, OpenRISC JTAG and UART with a single USB cable. Our sincere thanks go to ORSoC for making a copy available to us.

For all its ease of use, the one thing that turned out to be a bit problematic was resetting the board, as no reset button is provided. The reset pin is routed to the expansion connector, but that’s not particularly helpful.

ORSoC deboard

The reset line is also connected to the FT4232 controller. It is therefore possible to perform a system reset using the USB connection. Unfortunately, or_debug_proxy does not provide such functionality.

We have come up with a simple way of resetting the board using the USB connection based on the UrJTAG project, and we’d like to share it for the convenience of everyone who is getting a bit frustrated with unplugging the board time and again.

UrJTAG is a universal tool for comunicating over JTAG. It is used to program the Altera FPGA chip, as instructed in the Running_SW_on_FPGA_board.txt document (delivered inside the VirtualBox image). We shall use this tool, with a slight modification, to reset the board.

The scripts included in the VirtualBox image use a generic ft2232 cable driver. This driver does not support TRST ans SRST signals. We have written a small patch that adds a new cable called ordb2. This new cable is based on a generic ft2232 cable, except that a SRST line is added.

Below are the instructions how to enable the reset functionality in UrJTAG:

First download the UrJTAG project and two attachments of this post – the patch and the UrJTAG script.

Extract the project and apply our patch.

tar -xvjpf urjtag-0.10.tar.bz2
cd urjtag-0.10
patch -p1 < ../urjtag-0.10-ordb2-antmicro.patch

Now build the project and copy the configuration script:

cp ../ordb2_reset.cmd ./

It is now possible to reset the board, by issuing the following command (in the current directory):

./src/jtag ordb2_reset.cmd

How convenient!