get openocd svf test running, replicating jtag test
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 26 Sep 2020 15:06:42 +0000 (16:06 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 26 Sep 2020 15:06:42 +0000 (16:06 +0100)
src/soc/debug/test/idcode_test2.svf [new file with mode: 0644]
src/soc/debug/test/openocd.cfg [new file with mode: 0644]
src/soc/debug/test/test_jtag_tap_srv.py
src/soc/litex/florent/idcode_test2.svf

diff --git a/src/soc/debug/test/idcode_test2.svf b/src/soc/debug/test/idcode_test2.svf
new file mode 100644 (file)
index 0000000..a7545e0
--- /dev/null
@@ -0,0 +1,46 @@
+STATE RESET IDLE;
+TIR 0 ;
+HIR 5 TDI (1f) SMASK (1f) ;
+//HDR 1 TDI (00) SMASK (01) ;
+TDR 0 ;
+//Loading device with 'idcode' instruction.
+SIR 4 TDI (1) SMASK (f) ;
+//SDR 32 TDI (00000000) SMASK (ffffffff) TDO (00000c7f) SMASK (ffffffff) ;
+SDR 32 TDI (00000000) SMASK (ffffffff) TDO (000018ff) MASK (ffffffff) ;
+//
+
+// set to DMI "address"
+SIR 4 TDI (8) SMASK (f) ;
+// set DMI "ctrl" address (0)
+SDR 8 TDI (0) SMASK (ff) ;
+// set to DMI "data read"
+SIR 4 TDI (9) SMASK (f) ;
+// read 64 bit
+SDR 64 TDI (0000000000000000) SMASK (0000000000000000) TDO (0000000000000004) MASK (ffffffffffffffff) ;
+
+// set to DMI "address"
+SIR 4 TDI (8) SMASK (f) ;
+// set DMI "ctrl" address (0)
+SDR 8 TDI (0) SMASK (ff) ;
+// set to DMI "data write-read"
+SIR 4 TDI (a) SMASK (f) ;
+// write-read 64 bit
+SDR 64 TDI (0000000000000002) SMASK (ffffffffffffffff) TDO (0000000000000004) MASK (ffffffffffffffff) ;
+
+// set to DMI "address"
+SIR 4 TDI (8) SMASK (f) ;
+// set DMI "ctrl" address (0)
+SDR 8 TDI (0) SMASK (ff) ;
+// set to DMI "data read"
+SIR 4 TDI (9) SMASK (f) ;
+// read 64 bit
+SDR 64 TDI (0000000000000000) SMASK (0000000000000000) TDO (0000000000000002) MASK (ffffffffffffffff) ;
+
+// set to DMI "address"
+SIR 4 TDI (8) SMASK (f) ;
+// set DMI "MSR" address (3)
+SDR 8 TDI (3) SMASK (ff) ;
+// set to DMI "data read"
+SIR 4 TDI (9) SMASK (f) ;
+// read 64 bit
+SDR 64 TDI (0000000000000000) SMASK (0000000000000000) TDO (00000000deadbeef) MASK (ffffffffffffffff) ;
diff --git a/src/soc/debug/test/openocd.cfg b/src/soc/debug/test/openocd.cfg
new file mode 100644 (file)
index 0000000..a3c7084
--- /dev/null
@@ -0,0 +1,15 @@
+
+interface remote_bitbang
+remote_bitbang_port 44853
+remote_bitbang_host localhost
+
+# this should be irlen=4
+jtag newtap libresoc tap -irlen 4 -irmask 0xf -ircapture 0xf -expected-id 0x000018ff
+
+#set _TARGETNAME libresoc.tap
+#target create $_TARGETNAME.0 ppc64 -chain-position $_TARGETNAME -rtos hwthread
+
+# Configure work area in on-chip SRAM
+#$_TARGETNAME.0 configure -work-area-phys 0x80000000 \
+#               -work-area-size 1000 -work-area-backup 0
+
index e8d31bae2ff1426619dabb61e3b055ecd9146cd1..74df1c51762546381b231ff386e03ca4c7891c62 100644 (file)
@@ -96,14 +96,14 @@ def jtag_read_write_reg(dut, addr, d_len, d_in=0):
 
 
 # JTAG-ircodes for accessing DMI
-DMI_ADDR = 5
-DMI_READ = 6
-DMI_WRRD = 7
+DMI_ADDR = 8
+DMI_READ = 9
+DMI_WRRD = 10
 
 # JTAG-ircodes for accessing Wishbone
-WB_ADDR = 8
-WB_READ = 9
-WB_WRRD = 10
+WB_ADDR = 5
+WB_READ = 6
+WB_WRRD = 7
 
 
 def jtag_srv(dut):
index d2112fc061aa25742849ea3b4e8efc9ef3ba6440..a21eb261f61c3743e755037eb5e3ec11f4090a67 100644 (file)
@@ -4,17 +4,17 @@ HIR 5 TDI (1f) SMASK (1f) ;
 //HDR 1 TDI (00) SMASK (01) ;
 TDR 0 ;
 //Loading device with 'idcode' instruction.
-SIR 4 TDI (1) SMASK (1) ;
+SIR 4 TDI (1) SMASK (f) ;
 //SDR 32 TDI (00000000) SMASK (ffffffff) TDO (00000c7f) SMASK (ffffffff) ;
 SDR 32 TDI (00000000) SMASK (ffffffff) TDO (000018ff) MASK (ffffffff) ;
 //
 // set to DMI "address"
 SIR 4 TDI (8) SMASK (f) ;
 // set DMI "ctrl" address (0)
-SDR 8 TDI (2) SMASK (ff) ;
+SDR 8 TDI (0) SMASK (ff) ;
 // set to DMI "data read"
 SIR 4 TDI (9) SMASK (f) ;
 // read 64 bit
 //SDR 32 TDI (00000000) SMASK (ffffffff) TDO (000018ff) MASK (ffffffff) ;
 //SDR 32 TDI (00000000) SMASK (00000000) TDO (00000000) MASK (ffffffff) ;
-SDR 64 TDI (0000000000000000) SMASK (0000000000000000) TDO (0000000000000000) MASK (ffffffffffffffff) ;
+SDR 64 TDI (0000000000000000) SMASK (0000000000000000) TDO (0000000000000004) MASK (ffffffffffffffff) ;