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

-- 

Reply via email to