Skip to content

remote reboot

Sho Uemura edited this page Apr 4, 2025 · 3 revisions

Remote reboot of RFSoC board

When you crash the Linux OS (the board will no longer respond to any network input - ping, Jupyter, anything), you need to power-cycle the board. If you want to be able to do this remotely, these instructions send a power-on reset command through the USB-JTAG connector (the same connector you use to get a serial console). Wait a minute or two for the board to boot, and you should be able to connect.

current instructions (with xsdb)

These instructions work with newer versions of Vivado that have xsdb and not xsct - xsdb and xsct are almost interchangeable and you should use whichever you have, the differences between these two sets of instructions are not really important.

Paste the following into a text file reset_zynq.tcl (or you can run the commands by hand in the xsdb shell, similar to how xsct is used below):

connect
targets -set -filter {name == "PS TAP"}
rst -por
disconnect
$ source ~/Soft/Vivado_Lab/2020.2/settings64.sh
$ xsdb reset_zynq.tcl

If you have multiple boards connected, you can do a more complex filter such as targets -set -filter {name == "PS TAP" && jtag_cable_product == "ZCU216 FT4232H"}. To figure out what properties to filter on:

xsdb% targets -filter {name =~ "PS TAP"} -target-properties
{target_ctx {JTAG-jsn-HW-Z1-ZCU111 FT4232H-97040A-147e0093-0} target_id 1 level 0 name {PS TAP} parent_ctx {} parent {} state_reason {} is_current 0 bscan {} jtag_device_id 2 jtag_device_ctx {jsn-HW-Z1-ZCU111 FT4232H-97040A-147e0093-0} jtag_device_name xczu28dr jtag_cable_id 1 jtag_cable_ctx {jsn-HW-Z1-ZCU111 FT4232H-97040A} jtag_cable_name {Xilinx HW-Z1-ZCU111 FT4232H 97040A} jtag_device_index 0 jtag_cable_manufacturer Xilinx jtag_cable_product {HW-Z1-ZCU111 FT4232H} jtag_cable_serial 97040A} {target_ctx {JTAG-jsn-ZCU216 FT4232H-932116130140A-147fe093-0} target_id 6 level 0 name {PS TAP} parent_ctx {} parent {} state_reason {} is_current 0 bscan {} jtag_device_id 8 jtag_device_ctx {jsn-ZCU216 FT4232H-932116130140A-147fe093-0} jtag_device_name xczu49dr jtag_cable_id 7 jtag_cable_ctx {jsn-ZCU216 FT4232H-932116130140A} jtag_cable_name {Xilinx ZCU216 FT4232H 932116130140A} jtag_device_index 0 jtag_cable_manufacturer Xilinx jtag_cable_product {ZCU216 FT4232H} jtag_cable_serial 932116130140A}

It's good practice to first run the targets command without the -set flag, to make sure that it selects exactly one target.

old instructions (with xsct)

$ cd /tools/Xilinx/SDK/2019.1/bin 
$ ./xsct 
   xsct% connect 
   xsct% targets 1 
   xsct% rst -por 
   xsct% exit

Clone this wiki locally