--- /dev/null
+# 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
+}