| |
| # |
| # PYNQ-Z1: Python Productivity for Zynq-7000 ARM/FPGA SoC |
| # |
| # https://reference.digilentinc.com/reference/programmable-logic/pynq-z1/start |
| # |
| |
| # Device description changed from Digilent HS1 but is otherwise identical. |
| interface ftdi |
| transport select jtag |
| 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 |
| adapter_khz 20000 |
| reset_config none |
| |
| # Modified Zynq-7000 configuration |
| set _CHIPNAME zynq |
| set _TARGETNAME $_CHIPNAME.cpu |
| |
| jtag newtap zynq_pl bs -irlen 6 -ircapture 0x1 -irmask 0x03 \ |
| -expected-id 0x23727093 \ |
| -expected-id 0x13722093 \ |
| -expected-id 0x03727093 \ |
| -expected-id 0x03736093 |
| |
| jtag newtap $_CHIPNAME dap -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 0x4ba00477 |
| |
| target create ${_TARGETNAME}0 cortex_a -chain-position $_CHIPNAME.dap \ |
| -coreid 0 -dbgbase 0x80090000 |
| target create ${_TARGETNAME}1 cortex_a -chain-position $_CHIPNAME.dap \ |
| -coreid 1 -dbgbase 0x80092000 |
| target smp ${_TARGETNAME}0 ${_TARGETNAME}1 |
| |
| ${_TARGETNAME}0 configure -event reset-assert-post "cortex_a dbginit" |
| ${_TARGETNAME}1 configure -event reset-assert-post "cortex_a dbginit" |
| |
| pld device virtex2 zynq_pl.bs 1 |
| |
| set XC7_JSHUTDOWN 0x0d |
| set XC7_JPROGRAM 0x0b |
| set XC7_JSTART 0x0c |
| set XC7_BYPASS 0x3f |
| |
| proc zynqpl_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 |
| } |
| |
| proc zynqpl_reset_release {target} { |
| # Unlock SLCR |
| $target mww 0xf8000008 0xdf0d |
| # Enable level shifters, both PL-PS and PS-PL |
| $target mww 0xf8000900 0xF |
| # Release FPGA reset |
| $target mww 0xf8000240 0x0 |
| # Lock SLCR |
| $target mww 0xf8000004 0x767b |
| } |