xilinx-xcu: add Xilinx Ultrascale tap data 88/4188/8
authorRobert Jordens <jordens@gmail.com>
Thu, 3 Aug 2017 10:25:07 +0000 (12:25 +0200)
committerMatthias Welwarsky <matthias@welwarsky.de>
Fri, 30 Mar 2018 09:07:49 +0000 (10:07 +0100)
The Ultrascale series is a bit more complicated to handle since with the
stacked and interconnected dies the IR gets longer. This adds support
for all currently known chips from the Ultrascale family.

Change-Id: Ibac325dd6fadc76f73cc682b1c62c1a5f39f0786
Signed-off-by: Robert Jordens <jordens@gmail.com>
Reviewed-on: http://openocd.zylin.com/4188
Tested-by: jenkins
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
tcl/cpld/xilinx-xcu.cfg [new file with mode: 0644]

diff --git a/tcl/cpld/xilinx-xcu.cfg b/tcl/cpld/xilinx-xcu.cfg
new file mode 100644 (file)
index 0000000..3270597
--- /dev/null
@@ -0,0 +1,72 @@
+# Xilinx Ultrascale (Kintex, Virtex, Zynq)
+# https://www.xilinx.com/support/documentation/user_guides/ug570-ultrascale-configuration.pdf
+
+if { [info exists CHIPNAME] } {
+       set _CHIPNAME $CHIPNAME
+} else {
+       set _CHIPNAME xcu
+}
+
+# The cvarious chips in the Ultrascale family have different IR length.
+# Set $CHIP before including this file to determine the device.
+array set _XCU_DATA {
+       XCKU025 {0x03824093 6}
+       XCKU035 {0x03823093 6}
+       XCKU040 {0x03822093 6}
+       XCKU060 {0x03919093 6}
+       XCKU095 {0x03844093 6}
+       XCKU3P {0x04A63093 6}
+       XCKU5P {0x04A62093 6}
+       XCKU9P {0x0484A093 6}
+       XCKU11P {0x04A4E093 6}
+       XCKU13P {0x04A52093 6}
+       XCKU15P {0x04A56093 6}
+       XCVU065 {0x03939093 6}
+       XCVU080 {0x03843093 6}
+       XCVU095 {0x03842093 6}
+       XCVU3P {0x04B39093 6}
+       XCKU085 {0x0380F093 12}
+       XCKU115 {0x0390D093 12}
+       XCVU125 {0x0392D093 12}
+       XCVU5P {0x04B2B093 12}
+       XCVU7P {0x04B29093 12}
+       XCVU160 {0x03933093 18}
+       XCVU190 {0x03931093 18}
+       XCVU440 {0x0396D093 18}
+       XCVU9P {0x04B31093 18}
+       XCVU11P {0x04B49093 18}
+       XCVU13P {0x04B51093 24}
+}
+
+if { ![info exists CHIP] } {
+       error "set CHIP to one of "[concat [array names _XCU_DATA]]
+}
+
+if { ![llength [array names _XCU_DATA $CHIP]] } {
+       error "unknown CHIP: "$CHIP
+}
+
+set _EXPID [lindex $_XCU_DATA($CHIP) 0]
+set _IRLEN [lindex $_XCU_DATA($CHIP) 1]
+
+# the 4 top bits (28:31) are the die stepping/revisions. ignore it.
+jtag newtap $_CHIPNAME tap -irlen $_IRLEN -ignore-version -expected-id $_EXPID
+
+pld device virtex2 $_CHIPNAME.tap 1
+
+set XCU_JSHUTDOWN 0x0d
+set XCU_JPROGRAM 0x0b
+set XCU_JSTART 0x0c
+set XCU_BYPASS 0x3f
+
+proc xcu_program {tap} {
+       global XCU_JSHUTDOWN XCU_JPROGRAM XCU_JSTART XCU_BYPASS
+       irscan $tap $XCU_JSHUTDOWN
+       irscan $tap $XCU_JPROGRAM
+       runtest 60000
+       #JSTART prevents this from working...
+       #irscan $tap $XCU_JSTART
+       runtest 2000
+       irscan $tap $XCU_BYPASS
+       runtest 2000
+}

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)