From 733e8ba062de8abc5f4d655d73c2fbd8b51877b2 Mon Sep 17 00:00:00 2001 From: Robert Jordens Date: Thu, 2 Jul 2015 23:38:53 -0600 Subject: [PATCH] kc705: digilent-jtag/kintex7/jtagspi board Xilinx Kintex7 Development board with integrated Digilent JTAG-SMT1 (a.k.a. HS1) interface and a 128 MBit SPI flash. Change-Id: I9daba0a2fb2c17e04bcb37bd41872ebde25e0d2f Signed-off-by: Robert Jordens Reviewed-on: http://openocd.zylin.com/2861 Tested-by: jenkins Reviewed-by: Spencer Oliver --- tcl/board/kc705.cfg | 15 ++++++++ tcl/cpld/xilinx-xc7.cfg | 57 +++++++++++++++++++++++++++++ tcl/interface/ftdi/digilent-hs1.cfg | 11 ++++++ 3 files changed, 83 insertions(+) create mode 100644 tcl/board/kc705.cfg create mode 100644 tcl/cpld/xilinx-xc7.cfg create mode 100644 tcl/interface/ftdi/digilent-hs1.cfg diff --git a/tcl/board/kc705.cfg b/tcl/board/kc705.cfg new file mode 100644 index 00000000..39f7fa39 --- /dev/null +++ b/tcl/board/kc705.cfg @@ -0,0 +1,15 @@ +# http://www.xilinx.com/products/boards-and-kits/ek-k7-kc705-g.html + +source [find interface/ftdi/digilent-hs1.cfg] +source [find cpld/xilinx-xc7.cfg] +source [find cpld/jtagspi.cfg] +adapter_khz 25000 + +# example command to write bitstream, soft-cpu bios and runtime: +# openocd -f board/kc705.cfg -c "init;\ +# jtagspi_init 0 bscan_spi_xc7k325t.bit;\ +# jtagspi_program bitstream-kc705.bin 0;\ +# jtagspi_program bios.bin 0xaf0000;\ +# jtagspi_program runtime.fbi 0xb00000;\ +# xc7_program xc7.tap;\ +# exit" diff --git a/tcl/cpld/xilinx-xc7.cfg b/tcl/cpld/xilinx-xc7.cfg new file mode 100644 index 00000000..5c5b0232 --- /dev/null +++ b/tcl/cpld/xilinx-xc7.cfg @@ -0,0 +1,57 @@ +# xilinx series 7 (artix, kintex, virtex) +# http://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf + +if { [info exists CHIPNAME] } { + set _CHIPNAME $CHIPNAME +} else { + set _CHIPNAME xc7 +} + +# the 4 top bits (28:31) are the die stepping/revisions. ignore it. +jtag newtap $_CHIPNAME tap -irlen 6 -ignore-version \ + -expected-id 0x0362D093 \ + -expected-id 0x0362D093 \ + -expected-id 0x0362C093 \ + -expected-id 0x03632093 \ + -expected-id 0x03631093 \ + -expected-id 0x03636093 \ + -expected-id 0x03647093 \ + -expected-id 0x0364C093 \ + -expected-id 0x03651093 \ + -expected-id 0x03747093 \ + -expected-id 0x03656093 \ + -expected-id 0x03752093 \ + -expected-id 0x03751093 \ + -expected-id 0x03671093 \ + -expected-id 0x036B3093 \ + -expected-id 0x036B7093 \ + -expected-id 0x036BB093 \ + -expected-id 0x036BF093 \ + -expected-id 0x03667093 \ + -expected-id 0x03682093 \ + -expected-id 0x03687093 \ + -expected-id 0x03692093 \ + -expected-id 0x03691093 \ + -expected-id 0x03696093 \ + -expected-id 0x036D5093 \ + -expected-id 0x036D9093 \ + -expected-id 0x036DB093 + +pld device virtex2 $_CHIPNAME.tap 1 + +set XC7_JSHUTDOWN 0x0d +set XC7_JPROGRAM 0x0b +set XC7_JSTART 0x0c +set XC7_BYPASS 0x3f + +proc xc7_program {tap} { + global XC7_JSHUTDOWN XC7_JPROGRAM XC7_JSTART XC7_BYPASS + irscan $tap $XC7_JSHUTDOWN + irscan $tap $XC7_JPROGRAM + runtest 60000 + #JSTART prevents this from working... + #irscan $tap $XC7_JSTART + runtest 2000 + irscan $tap $XC7_BYPASS + runtest 2000 +} diff --git a/tcl/interface/ftdi/digilent-hs1.cfg b/tcl/interface/ftdi/digilent-hs1.cfg new file mode 100644 index 00000000..e27249b3 --- /dev/null +++ b/tcl/interface/ftdi/digilent-hs1.cfg @@ -0,0 +1,11 @@ +# this supports JTAG-HS1 and JTAG-SMT1 +# (the later being the OEM on-board version) + +interface ftdi +ftdi_device_desc "Digilent Adept USB Device" +ftdi_vid_pid 0x0403 0x6010 +# channel 1 does not have any functionality +ftdi_channel 0 +# just TCK TDI TDO TMS, no reset +ftdi_layout_init 0x0088 0x008b +reset_config none -- 2.39.5