Hi,
I wonder if anybody has similar problem.
A while ago we made two identical boards of kasli-soc v1.1rc2. We have checked with RTG that all all solders and balls are ok. All voltages and clocks on board are also ok.
Nevertheless, we cannot start it, whatever configuration and release of bootloader and artiq-zynq we are compiling.
If I try booting from sd card, we have either NUL or a few bytes of random trash on fddi (looking on all 4 channels)
/$ python3 -m serial.tools.miniterm /dev/ttyUSB3 115200
--- Miniterm on /dev/ttyUSB3 115200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
␀����
If I use JTAG, reseting seems ok
~/src/artiq-zynq$ python3 kasli_soc_por.py
but programming by /ip_local_run.sh suggest that one of the JTAG line seems always high
~/src/artiq-zynq$ ./ip_local_run.sh
Open On-Chip Debugger 0.12.0
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
DEPRECATED! use 'ftdi device_desc' not 'ftdi_device_desc'
DEPRECATED! use 'ftdi vid_pid' not 'ftdi_vid_pid'
DEPRECATED! use 'ftdi channel' not 'ftdi_channel'
DEPRECATED! use 'ftdi layout_init' not 'ftdi_layout_init'
Zynq CPU1.
DEPRECATED! use 'ftdi layout_signal' not 'ftdi_layout_signal'
Info : clock speed 1000 kHz
Info : JTAG tap: zynq.tap tap/device found: 0x1372c093 (mfg: 0x049 (Xilinx), part: 0x372c, ver: 0x1)
Info : JTAG tap: zynq.dap tap/device found: 0xffffffff (mfg: 0x7ff (<invalid>), part: 0xffff, ver: 0xf)
Warn : JTAG tap: zynq.dap UNEXPECTED: 0xffffffff (mfg: 0x7ff (<invalid>), part: 0xffff, ver: 0xf)
Error: JTAG tap: zynq.dap expected 1 of 1: 0x4ba00477 (mfg: 0x23b (ARM Ltd), part: 0xba00, ver: 0x4)
Error: Trying to use configured scan chain anyway...
Error: zynq.dap: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Error: Invalid ACK (7) in DAP response
Error: JTAG-DP STICKY ERROR
If I add the debug to openocd, I got
~/src/artiq-zynq$ ./d3_local_run.sh
Open On-Chip Debugger 0.12.0
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
User : 3 1 options.c:52 configuration_output_handler(): debug_level: 3
User : 4 1 options.c:52 configuration_output_handler():
Debug: 5 1 options.c:233 add_default_dirs(): bindir=/nix/store/c9383kafar4hb3kgrn1zcga9lv7hxq93-openocd-0.12.0/bin
Debug: 6 1 options.c:234 add_default_dirs(): pkgdatadir=/nix/store/c9383kafar4hb3kgrn1zcga9lv7hxq93-openocd-0.12.0/share/openocd
Debug: 7 1 options.c:235 add_default_dirs(): exepath=/nix/store/c9383kafar4hb3kgrn1zcga9lv7hxq93-openocd-0.12.0/bin
Debug: 8 1 options.c:236 add_default_dirs(): bin2data=../share/openocd
Debug: 9 1 configuration.c:33 add_script_search_dir(): adding /home/bec/.config/openocd
Debug: 10 1 configuration.c:33 add_script_search_dir(): adding /home/bec/.openocd
Debug: 11 1 configuration.c:33 add_script_search_dir(): adding /nix/store/c9383kafar4hb3kgrn1zcga9lv7hxq93-openocd-0.12.0/bin/../share/openocd/site
Debug: 12 1 configuration.c:33 add_script_search_dir(): adding /nix/store/c9383kafar4hb3kgrn1zcga9lv7hxq93-openocd-0.12.0/bin/../share/openocd/scripts
Debug: 13 1 command.c:155 script_debug(): command - ocd_find kasli_soc.cfg
Debug: 14 2 configuration.c:88 find_file(): found kasli_soc.cfg
Debug: 15 2 command.c:155 script_debug(): command - adapter driver ftdi
Debug: 16 2 command.c:155 script_debug(): command - echo DEPRECATED! use 'ftdi device_desc' not 'ftdi_device_desc'
User : 17 2 command.c:685 handle_echo(): DEPRECATED! use 'ftdi device_desc' not 'ftdi_device_desc'
Debug: 18 2 command.c:155 script_debug(): command - ftdi device_desc Quad RS232-HS
Debug: 19 2 command.c:155 script_debug(): command - echo DEPRECATED! use 'ftdi vid_pid' not 'ftdi_vid_pid'
User : 20 2 command.c:685 handle_echo(): DEPRECATED! use 'ftdi vid_pid' not 'ftdi_vid_pid'
Debug: 21 2 command.c:155 script_debug(): command - ftdi vid_pid 0x0403 0x6011
Debug: 22 2 command.c:155 script_debug(): command - echo DEPRECATED! use 'ftdi channel' not 'ftdi_channel'
User : 23 2 command.c:685 handle_echo(): DEPRECATED! use 'ftdi channel' not 'ftdi_channel'
Debug: 24 2 command.c:155 script_debug(): command - ftdi channel 0
Debug: 25 2 command.c:155 script_debug(): command - echo DEPRECATED! use 'ftdi layout_init' not 'ftdi_layout_init'
User : 26 2 command.c:685 handle_echo(): DEPRECATED! use 'ftdi layout_init' not 'ftdi_layout_init'
Debug: 27 2 command.c:155 script_debug(): command - ftdi layout_init 0x0098 0x008b
Debug: 28 2 command.c:155 script_debug(): command - transport select jtag
Debug: 29 2 command.c:155 script_debug(): command - adapter speed 1000
Debug: 30 2 adapter.c:251 adapter_config_khz(): handle adapter khz
Debug: 31 2 adapter.c:215 adapter_khz_to_speed(): convert khz to adapter specific speed value
Debug: 32 2 adapter.c:215 adapter_khz_to_speed(): convert khz to adapter specific speed value
Debug: 33 2 command.c:155 script_debug(): command - jtag newtap zynq tap -irlen 6 -ircapture 0x001 -irmask 0x003 -expected-id 0x1372c093
Debug: 34 2 tcl.c:557 jim_newtap_cmd(): Creating New Tap, Chip: zynq, Tap: tap, Dotted: zynq.tap, 8 params
Debug: 35 2 tcl.c:582 jim_newtap_cmd(): Processing option: -irlen
Debug: 36 2 tcl.c:582 jim_newtap_cmd(): Processing option: -ircapture
Debug: 37 2 tcl.c:582 jim_newtap_cmd(): Processing option: -irmask
Debug: 38 2 tcl.c:582 jim_newtap_cmd(): Processing option: -expected-id
Debug: 39 2 core.c:1474 jtag_tap_init(): Created Tap: zynq.tap @ abs position 0, irlen 6, capture: 0x1 mask: 0x3
Debug: 40 2 command.c:155 script_debug(): command - jtag newtap zynq dap -irlen 4 -ircapture 0x01 -irmask 0x03 -expected-id 0x4ba00477
Debug: 41 2 tcl.c:557 jim_newtap_cmd(): Creating New Tap, Chip: zynq, Tap: dap, Dotted: zynq.dap, 8 params
Debug: 42 2 tcl.c:582 jim_newtap_cmd(): Processing option: -irlen
Debug: 43 2 tcl.c:582 jim_newtap_cmd(): Processing option: -ircapture
Debug: 44 2 tcl.c:582 jim_newtap_cmd(): Processing option: -irmask
Debug: 45 2 tcl.c:582 jim_newtap_cmd(): Processing option: -expected-id
Debug: 46 2 core.c:1474 jtag_tap_init(): Created Tap: zynq.dap @ abs position 1, irlen 4, capture: 0x1 mask: 0x3
Debug: 47 2 command.c:155 script_debug(): command - dap create zynq.dap -chain-position zynq.dap
Debug: 48 2 command.c:155 script_debug(): command - target create zynq.cpu.0 cortex_a -coreid 0 -endian little -dap zynq.dap -dbgbase 0x80090000
Debug: 49 2 command.c:155 script_debug(): command - echo Zynq CPU1.
User : 50 2 command.c:685 handle_echo(): Zynq CPU1.
Debug: 51 2 command.c:155 script_debug(): command - target create zynq.cpu.1 cortex_a -coreid 1 -endian little -dap zynq.dap -dbgbase 0x80092000
Debug: 52 2 command.c:289 register_command(): command 'arm' is already registered
Debug: 53 2 command.c:289 register_command(): command 'arm reg' is already registered
Debug: 54 2 command.c:289 register_command(): command 'arm mcr' is already registered
Debug: 55 2 command.c:289 register_command(): command 'arm mrc' is already registered
Debug: 56 2 command.c:289 register_command(): command 'arm core_state' is already registered
Debug: 57 2 command.c:289 register_command(): command 'arm disassemble' is already registered
Debug: 58 2 command.c:289 register_command(): command 'arm semihosting' is already registered
Debug: 59 2 command.c:289 register_command(): command 'arm semihosting_redirect' is already registered
Debug: 60 2 command.c:289 register_command(): command 'arm semihosting_cmdline' is already registered
Debug: 61 2 command.c:289 register_command(): command 'arm semihosting_fileio' is already registered
Debug: 62 2 command.c:289 register_command(): command 'arm semihosting_resexit' is already registered
Debug: 63 2 command.c:289 register_command(): command 'arm semihosting_read_user_param' is already registered
Debug: 64 2 command.c:289 register_command(): command 'arm semihosting_basedir' is already registered
Debug: 65 2 command.c:289 register_command(): command 'cache_config' is already registered
Debug: 66 2 command.c:289 register_command(): command 'cache_config l2x' is already registered
Debug: 67 2 command.c:289 register_command(): command 'cache' is already registered
Debug: 68 2 command.c:289 register_command(): command 'cache auto' is already registered
Debug: 69 2 command.c:289 register_command(): command 'cache l1' is already registered
Debug: 70 2 command.c:289 register_command(): command 'cache l1 info' is already registered
Debug: 71 2 command.c:289 register_command(): command 'cache l1 d' is already registered
Debug: 72 2 command.c:289 register_command(): command 'cache l1 d flush_all' is already registered
Debug: 73 2 command.c:289 register_command(): command 'cache l1 d inval' is already registered
Debug: 74 2 command.c:289 register_command(): command 'cache l1 d clean' is already registered
Debug: 75 2 command.c:289 register_command(): command 'cache l1 i' is already registered
Debug: 76 2 command.c:289 register_command(): command 'cache l1 i inval_all' is already registered
Debug: 77 2 command.c:289 register_command(): command 'cache l1 i inval' is already registered
Debug: 78 2 command.c:289 register_command(): command 'cache l2x' is already registered
Debug: 79 2 command.c:289 register_command(): command 'cache l2x conf' is already registered
Debug: 80 2 command.c:289 register_command(): command 'cache l2x info' is already registered
Debug: 81 2 command.c:289 register_command(): command 'cache l2x flush_all' is already registered
Debug: 82 2 command.c:289 register_command(): command 'cache l2x flush' is already registered
Debug: 83 2 command.c:289 register_command(): command 'cache l2x inval' is already registered
Debug: 84 2 command.c:289 register_command(): command 'cache l2x clean' is already registered
Debug: 85 2 command.c:289 register_command(): command 'cortex_a' is already registered
Debug: 86 2 command.c:289 register_command(): command 'cortex_a cache_info' is already registered
Debug: 87 2 command.c:289 register_command(): command 'cortex_a dbginit' is already registered
Debug: 88 2 command.c:289 register_command(): command 'cortex_a maskisr' is already registered
Debug: 89 2 command.c:289 register_command(): command 'cortex_a dacrfixup' is already registered
Debug: 90 2 command.c:289 register_command(): command 'cortex_a mmu' is already registered
Debug: 91 2 command.c:289 register_command(): command 'cortex_a mmu dump' is already registered
Debug: 92 2 command.c:289 register_command(): command 'cortex_a smp' is already registered
Debug: 93 2 command.c:289 register_command(): command 'cortex_a smp_gdb' is already registered
Debug: 94 2 command.c:155 script_debug(): command - target smp zynq.cpu.0 zynq.cpu.1
Debug: 95 2 target.c:6494 jim_target_smp(): 3
Debug: 96 2 target.c:6454 create_target_list_node(): zynq.cpu.0
Debug: 97 2 target.c:6454 create_target_list_node(): zynq.cpu.1
Debug: 98 2 command.c:155 script_debug(): command - echo DEPRECATED! use 'ftdi layout_signal' not 'ftdi_layout_signal'
User : 99 2 command.c:685 handle_echo(): DEPRECATED! use 'ftdi layout_signal' not 'ftdi_layout_signal'
Debug: 100 2 command.c:155 script_debug(): command - ftdi layout_signal nSRST -oe 0x0004
Debug: 101 2 command.c:155 script_debug(): command - reset_config srst_only srst_open_drain
Debug: 102 2 command.c:155 script_debug(): command - adapter srst pulse_width 250
Debug: 103 2 command.c:155 script_debug(): command - adapter srst delay 400
Debug: 104 2 command.c:155 script_debug(): command - pld device virtex2 zynq.tap 1
Debug: 105 3 command.c:155 script_debug(): command - init
Debug: 106 3 command.c:155 script_debug(): command - target init
Debug: 107 3 command.c:155 script_debug(): command - target names
Debug: 108 3 command.c:155 script_debug(): command - zynq.cpu.0 cget -event gdb-flash-erase-start
Debug: 109 3 command.c:155 script_debug(): command - zynq.cpu.0 configure -event gdb-flash-erase-start reset init
Debug: 110 3 command.c:155 script_debug(): command - zynq.cpu.0 cget -event gdb-flash-write-end
Debug: 111 3 command.c:155 script_debug(): command - zynq.cpu.0 configure -event gdb-flash-write-end reset halt
Debug: 112 3 command.c:155 script_debug(): command - zynq.cpu.0 cget -event gdb-attach
Debug: 113 3 command.c:155 script_debug(): command - zynq.cpu.0 configure -event gdb-attach halt 1000
Debug: 114 3 command.c:155 script_debug(): command - zynq.cpu.1 cget -event gdb-flash-erase-start
Debug: 115 3 command.c:155 script_debug(): command - zynq.cpu.1 configure -event gdb-flash-erase-start reset init
Debug: 116 3 command.c:155 script_debug(): command - zynq.cpu.1 cget -event gdb-flash-write-end
Debug: 117 3 command.c:155 script_debug(): command - zynq.cpu.1 configure -event gdb-flash-write-end reset halt
Debug: 118 3 command.c:155 script_debug(): command - zynq.cpu.1 cget -event gdb-attach
Debug: 119 3 command.c:155 script_debug(): command - zynq.cpu.1 configure -event gdb-attach halt 1000
Debug: 120 3 target.c:1657 handle_target_init_command(): Initializing targets...
Debug: 121 3 semihosting_common.c:109 semihosting_common_init():
Debug: 122 3 semihosting_common.c:109 semihosting_common_init():
Debug: 123 3 ftdi.c:654 ftdi_initialize(): ftdi interface using shortest path jtag state transitions
Debug: 124 10 mpsse.c:412 mpsse_purge(): -
Debug: 125 10 mpsse.c:693 mpsse_loopback_config(): off
Debug: 126 10 mpsse.c:738 mpsse_set_frequency(): target 1000000 Hz
Debug: 127 10 mpsse.c:730 mpsse_rtck_config(): off
Debug: 128 10 mpsse.c:719 mpsse_divide_by_5_config(): off
Debug: 129 10 mpsse.c:699 mpsse_set_divisor(): 29
Debug: 130 10 mpsse.c:762 mpsse_set_frequency(): actually 1000000 Hz
Debug: 131 10 adapter.c:215 adapter_khz_to_speed(): convert khz to adapter specific speed value
Debug: 132 10 adapter.c:219 adapter_khz_to_speed(): have adapter set up
Debug: 133 10 mpsse.c:738 mpsse_set_frequency(): target 1000000 Hz
Debug: 134 10 mpsse.c:730 mpsse_rtck_config(): off
Debug: 135 11 mpsse.c:719 mpsse_divide_by_5_config(): off
Debug: 136 11 mpsse.c:699 mpsse_set_divisor(): 29
Debug: 137 11 mpsse.c:762 mpsse_set_frequency(): actually 1000000 Hz
Debug: 138 11 adapter.c:215 adapter_khz_to_speed(): convert khz to adapter specific speed value
Debug: 139 11 adapter.c:219 adapter_khz_to_speed(): have adapter set up
Info : 140 11 adapter.c:179 adapter_init(): clock speed 1000 kHz
Debug: 141 11 openocd.c:134 handle_init_command(): Debug Adapter init complete
Debug: 142 11 command.c:155 script_debug(): command - transport init
Debug: 143 11 transport.c:219 handle_transport_init(): handle_transport_init
Debug: 144 11 core.c:830 jtag_add_reset(): SRST line released
Debug: 145 11 core.c:855 jtag_add_reset(): TRST line released
Debug: 146 11 core.c:328 jtag_call_event_callbacks(): jtag event: TAP reset
Debug: 147 421 command.c:155 script_debug(): command - jtag arp_init
Debug: 148 421 core.c:1509 jtag_init_inner(): Init JTAG chain
Debug: 149 421 core.c:328 jtag_call_event_callbacks(): jtag event: TAP reset
Debug: 150 421 core.c:1234 jtag_examine_chain(): DR scan interrogation for IDCODE/BYPASS
Debug: 151 421 core.c:328 jtag_call_event_callbacks(): jtag event: TAP reset
Info : 152 422 core.c:1133 jtag_examine_chain_display(): JTAG tap: zynq.tap tap/device found: 0x1372c093 (mfg: 0x049 (Xilinx), part: 0x372c, ver: 0x1)
Debug: 153 422 jep106.c:22 jep106_table_manufacturer(): BUG: Caller passed out-of-range JEP106 ID!
Info : 154 422 core.c:1133 jtag_examine_chain_display(): JTAG tap: zynq.dap tap/device found: 0xffffffff (mfg: 0x7ff (<invalid>), part: 0xffff, ver: 0xf)
Debug: 155 422 jep106.c:22 jep106_table_manufacturer(): BUG: Caller passed out-of-range JEP106 ID!
Warn : 156 422 core.c:1133 jtag_examine_chain_display(): JTAG tap: zynq.dap UNEXPECTED: 0xffffffff (mfg: 0x7ff (<invalid>), part: 0xffff, ver: 0xf)
Error: 157 422 core.c:1133 jtag_examine_chain_display(): JTAG tap: zynq.dap expected 1 of 1: 0x4ba00477 (mfg: 0x23b (ARM Ltd), part: 0xba00, ver: 0x4)
Error: 158 422 core.c:1554 jtag_init_inner(): Trying to use configured scan chain anyway...
Debug: 159 422 core.c:1364 jtag_validate_ircapture(): IR capture validation scan
Debug: 160 422 core.c:1421 jtag_validate_ircapture(): zynq.tap: IR capture 0x11
Error: 161 422 core.c:1413 jtag_validate_ircapture(): zynq.dap: IR capture error; saw 0x0f not 0x01
Debug: 162 422 core.c:328 jtag_call_event_callbacks(): jtag event: TAP reset
Warn : 163 422 core.c:1577 jtag_init_inner(): Bypassing JTAG setup events due to errors
Debug: 164 422 command.c:155 script_debug(): command - dap init
Debug: 165 422 arm_dap.c:97 dap_init_all(): Initializing all DAPs ...
Debug: 166 422 arm_dap.c:121 dap_init_all(): DAP zynq.dap configured by default to use ADIv5 protocol
Debug: 167 422 arm_adi_v5.c:679 dap_dp_init(): zynq.dap
Debug: 168 422 arm_adi_v5.c:711 dap_dp_init(): DAP: wait CDBGPWRUPACK
Debug: 169 422 arm_adi_v5.h:638 dap_dp_poll_register(): DAP: poll 4, mask 0x20000000, value 0x20000000
Error: 170 423 adi_v5_jtag.c:446 jtagdp_overrun_check(): Invalid ACK (7) in DAP response
Debug: 171 423 adi_v5_jtag.c:651 jtagdp_transaction_endcheck(): jtag-dp: CTRL/STAT 0xffffffff
Error: 172 423 adi_v5_jtag.c:662 jtagdp_transaction_endcheck(): JTAG-DP STICKY ERROR
Debug: 173 423 adi_v5_jtag.c:664 jtagdp_transaction_endcheck(): JTAG-DP STICKY OVERRUN
Debug: 174 423 command.c:544 run_command(): Command 'dap init' failed with error code -107
User : 175 423 command.c:608 command_run_line():
Debug: 176 423 command.c:544 run_command(): Command 'init' failed with error code -4
User : 177 423 command.c:608 command_run_line():
Debug: 178 423 target.c:2199 target_free_all_working_areas_restore(): freeing all working areas
Debug: 179 423 target.c:2199 target_free_all_working_areas_restore(): freeing all working areas
This happen on both our boards. What do you think? FPGA are broken or faulty, or is keept in reset?
Michal Zawada