-#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
# Xilinx Zynq-7000 All Programmable SoC
#
# http://www.xilinx.com/products/silicon-devices/soc/zynq-7000/index.htm
+# https://www.xilinx.com/member/forms/download/sim-model-eval-license-xef.html?filename=bsdl_zynq_2.zip
#
+# 0x03736093 XQ7Z100 XC7Z100I XC7Z100
+# 0x03731093 XQ7Z045 XC7Z045I XC7Z045
+# 0x0372c093 XQ7Z030 XC7Z030I XC7Z030 XA7Z030
+# 0x03727093 XQ7Z020 XC7Z020I XC7Z020 XA7Z020
+# 0x03732093 XC7Z035I XC7Z035
+# 0x0373b093 XC7Z015I XC7Z015
+# 0x03728093 XC7Z014S
+# 0x0373c093 XC7Z012S
+# 0x03722093 XC7Z010I XC7Z010 XA7Z010
+# 0x03723093 XC7Z007S
set _CHIPNAME zynq
set _TARGETNAME $_CHIPNAME.cpu
-jtag newtap zynq_pl bs -irlen 6 -ircapture 0x1 -irmask 0x03 \
- -expected-id 0x23727093 \
- -expected-id 0x13722093 \
+jtag newtap zynq_pl bs -irlen 6 -ignore-version -ircapture 0x1 -irmask 0x03 \
+ -expected-id 0x03723093 \
+ -expected-id 0x03722093 \
+ -expected-id 0x0373c093 \
+ -expected-id 0x03728093 \
+ -expected-id 0x0373B093 \
+ -expected-id 0x03732093 \
-expected-id 0x03727093 \
+ -expected-id 0x0372C093 \
+ -expected-id 0x03731093 \
-expected-id 0x03736093
jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 0x4ba00477
-coreid 1 -dbgbase 0x80092000
target smp ${_TARGETNAME}0 ${_TARGETNAME}1
-adapter_khz 1000
+adapter speed 1000
${_TARGETNAME}0 configure -event reset-assert-post "cortex_a dbginit"
${_TARGETNAME}1 configure -event reset-assert-post "cortex_a dbginit"
+
+pld create zynq_pl.pld virtex2 -chain-position zynq_pl.bs -no_jstart
+virtex2 set_user_codes zynq_pl.pld 0x02 0x03 0x22 0x23
+
+set XC7_JSHUTDOWN 0x0d
+set XC7_JPROGRAM 0x0b
+set XC7_JSTART 0x0c
+set XC7_BYPASS 0x3f
+
+proc zynqpl_program {tap} {
+ echo "DEPRECATED! use 'virtex2 program ...' not 'zynqpl_program'"
+ 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
+}