This is an automated email from Gerrit. "Bernhard Rosenkränzer <b...@baylibre.com>" just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8297
-- gerrit commit 25eb58c7e9c19024ab0abde460789b00ee336e9a Author: Tim Newsome <t...@sifive.com> Date: Mon Sep 21 14:10:27 2020 -0700 doc: Minimally describe the BSCAN tunnel interface. Add minimal documentation for the BSCAN tunnel interface. This is based on Tim Newsome <t...@sifive.com>'s work on the RISC-V fork. Change-Id: I5e0cd6972cb90649670249765e9bb30c2847eea6 Signed-off-by: Tim Newsome <t...@sifive.com> Signed-off-by: Bernhard Rosenkränzer <b...@baylibre.com> diff --git a/doc/openocd.texi b/doc/openocd.texi index 55e6e76808..7b76360762 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -11280,8 +11280,22 @@ and DBUS registers, respectively. @end deffn @deffn {Command} {riscv use_bscan_tunnel} value -Enable or disable use of a BSCAN tunnel to reach DM. Supply the width of -the DM transport TAP's instruction register to enable. Supply a value of 0 to disable. +Enable or disable use of a BSCAN tunnel to reach the Debug Module. Supply the +width of the DM transport TAP's instruction register to enable. Supply a +value of 0 to disable. + +This BSCAN tunnel interface is specific to SiFive IP. Anybody may implement +it, but currently there is no good documentation on it. In a nutshell, this +feature scans USER4 into a Xilinx TAP to select the tunnel device (assuming +hardware is present and it is hooked up to the Xilinx USER4 IR) and +encapsulates a tunneled scan directive into a DR scan into the Xilinx TAP. A +tunneled DR scan consists of: +@enumerate +@item 1 bit that selects IR when 0, or DR when 1 +@item 7 bits that encode the width of the desired tunneled scan +@item A width+1 stream of bits for the tunneled TDI. The plus one is because there is a one-clock skew between TDI of Xilinx chain and TDO from tunneled chain. +@item 3 bits of zero that the tunnel uses to go back to idle state. +@end enumerate @end deffn @deffn {Command} {riscv set_ebreakm} on|off --