openocd: Fix verify command for v0.10
authorJoel Stanley <joel@jms.id.au>
Tue, 11 May 2021 04:47:26 +0000 (14:17 +0930)
committerJoel Stanley <joel@jms.id.au>
Tue, 11 May 2021 07:50:55 +0000 (17:20 +0930)
v0.11 uses verify_image, which is not supported by v0.11. Use the old
verify_bank for v0.10.

Signed-off-by: Joel Stanley <joel@jms.id.au>
openocd/flash-arty
openocd/xilinx-xc7.cfg
openocd/xilinx-xc7_openocd_v0.11.cfg [new file with mode: 0644]

index 5cb534d39933145ff0c8ad588121f3476824e513..815dea90b93fc36429b5fb07d04cb3d6da61f8a0 100755 (executable)
@@ -6,7 +6,6 @@ import subprocess
 import sys
 
 BASE = os.path.dirname(os.path.abspath(__file__))
-CONFIG = os.path.join(BASE, "xilinx-xc7.cfg")
 
 def flash(config, flash_proxy, address, data, filetype="", set_qe=False):
     script = "; ".join([
@@ -49,5 +48,6 @@ else:
     sys.exit()
 
 proxy = os.path.join(BASE, proxy)
+config = os.path.join(BASE, "xilinx-xc7{}.cfg".format(version))
 
-flash(CONFIG, proxy, args.address, args.file, args.filetype.lower())
+flash(config, proxy, args.address, args.file, args.filetype.lower())
index 8824ccfcf4be1867116c90f77ff6a1916036e6e4..5359d4ff31ccfe0ab8b422110e18b559074c2256 100644 (file)
@@ -51,10 +51,10 @@ proc jtagspi_program {bin addr {type ""} } {
        global _FLASHNAME
        if { $type eq "" } {
                flash write_image erase $bin $addr
-               flash verify_image $bin $addr
+               flash verify_bank $_FLASHNAME $bin $addr
        } else {
                flash write_image erase $bin $addr $type
-               flash verify_image $bin $addr $type
+               flash verify_bank $_FLASHNAME $bin $addr $type
        }
 }
 # end jtagspi.cfg
diff --git a/openocd/xilinx-xc7_openocd_v0.11.cfg b/openocd/xilinx-xc7_openocd_v0.11.cfg
new file mode 100644 (file)
index 0000000..8f7df34
--- /dev/null
@@ -0,0 +1,68 @@
+# This file is the same sa xilinx-xc7.cfg, except we use
+# verify_image instead of verify_bank
+
+interface ftdi
+ftdi_vid_pid 0x0403 0x6010
+ftdi_channel 0
+ftdi_layout_init 0x00e8 0x60eb
+reset_config none
+adapter_khz 25000
+
+source [find cpld/xilinx-xc7.cfg]
+
+# From jtagspi.cfg with modification to support
+# specifying file type
+set _USER1 0x02
+
+if { [info exists JTAGSPI_IR] } {
+       set _JTAGSPI_IR $JTAGSPI_IR
+} else {
+       set _JTAGSPI_IR $_USER1
+}
+
+if { [info exists DR_LENGTH] } {
+       set _DR_LENGTH $DR_LENGTH
+} else {
+       set _DR_LENGTH 1
+}
+
+if { [info exists TARGETNAME] } {
+       set _TARGETNAME $TARGETNAME
+} else {
+       set _TARGETNAME $_CHIPNAME.proxy
+}
+
+if { [info exists FLASHNAME] } {
+       set _FLASHNAME $FLASHNAME
+} else {
+       set _FLASHNAME $_CHIPNAME.spi
+}
+
+target create $_TARGETNAME testee -chain-position $_CHIPNAME.tap
+flash bank $_FLASHNAME jtagspi 0 0 0 0 $_TARGETNAME $_JTAGSPI_IR $_DR_LENGTH
+
+proc jtagspi_init {chain_id proxy_bit} {
+       # load proxy bitstream $proxy_bit and probe spi flash
+       global _FLASHNAME
+       pld load $chain_id $proxy_bit
+       reset halt
+       flash probe $_FLASHNAME
+}
+
+proc jtagspi_program {bin addr {type ""} } {
+       # write and verify binary file $bin at offset $addr
+       global _FLASHNAME
+       if { $type eq "" } {
+               flash write_image erase $bin $addr
+               flash verify_image $bin $addr
+       } else {
+               flash write_image erase $bin $addr $type
+               flash verify_image $bin $addr $type
+       }
+}
+# end jtagspi.cfg
+
+proc fpga_program {} {
+    global _CHIPNAME
+    xc7_program $_CHIPNAME.tap
+}