2 # Xilinx Zynq-7000 All Programmable SoC
4 # http://www.xilinx.com/products/silicon-devices/soc/zynq-7000/index.htm
8 set _TARGETNAME $_CHIPNAME.cpu
10 jtag newtap zynq_pl bs -irlen 6 -ircapture 0x1 -irmask 0x03 \
11 -expected-id 0x23727093 \
12 -expected-id 0x13722093 \
13 -expected-id 0x03727093 \
14 -expected-id 0x03736093
16 jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 0x4ba00477
18 dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu
20 target create ${_TARGETNAME}0 cortex_a -dap $_CHIPNAME.dap \
21 -coreid 0 -dbgbase 0x80090000
22 target create ${_TARGETNAME}1 cortex_a -dap $_CHIPNAME.dap \
23 -coreid 1 -dbgbase 0x80092000
24 target smp ${_TARGETNAME}0 ${_TARGETNAME}1
28 ${_TARGETNAME}0 configure -event reset-assert-post "cortex_a dbginit"
29 ${_TARGETNAME}1 configure -event reset-assert-post "cortex_a dbginit"
31 pld device virtex2 zynq_pl.bs 1
33 set XC7_JSHUTDOWN 0x0d
38 proc zynqpl_program {tap} {
39 global XC7_JSHUTDOWN XC7_JPROGRAM XC7_JSTART XC7_BYPASS
40 irscan $tap $XC7_JSHUTDOWN
41 irscan $tap $XC7_JPROGRAM
43 #JSTART prevents this from working...
44 #irscan $tap $XC7_JSTART
46 irscan $tap $XC7_BYPASS