m-labs / artiq

A leading-edge control system for quantum information experiments
https://m-labs.hk/artiq
GNU Lesser General Public License v3.0
426 stars 197 forks source link

flash kasli-soc fails to find ARM #2579

Open jbqubit opened 6 days ago

jbqubit commented 6 days ago

Looks like JTAG boundary scan fails to find the ARM core on Kasli SoC.

$ ./local_run.sh   ** with added debug info **
+ '[' -z /nix/store/0wgl1kcha6gh1z9brvg8vnrp4p7dwp88-source/openocd ']'
+ '[' -z /nix/store/rzpgcdhmclwlj275rydxxfqs55izay9z-szl ']'
+ impure=0
+ load_bitstream=1
+ board_type=kasli_soc
+ fw_type=runtime
+ getopts ilb:t:f: opt
+ '[' -z '' ']'
+ case $board_type in
+ board_host=192.168.1.44
+ load_bitstream_cmd=
++ pwd
+ build_dir=/home/britton/experiment/artiq-zynq/build
++ pwd
+ result_dir=/home/britton/experiment/artiq-zynq/result
+ cd /nix/store/0wgl1kcha6gh1z9brvg8vnrp4p7dwp88-source/openocd
+ openocd -f kasli_soc.cfg -c 'load_image /nix/store/rzpgcdhmclwlj275rydxxfqs55izay9z-szl/szl-kasli_soc.elf; resume 0; exit'
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 (4) in DAP response

$ python3 -m serial.tools.list_ports -v
/dev/ttyUSB0     
    desc: Valon USB UART - Valon USB UART
    hwid: USB VID:PID=0403:6001 SER=12202221 LOCATION=1-7.2
/dev/ttyUSB1     
    desc: Quad RS232-HS - Quad RS232-HS
    hwid: USB VID:PID=0403:6011 SER=umd-ksoc-001 LOCATION=1-10.4.3:1.0
/dev/ttyUSB2     
    desc: Quad RS232-HS - Quad RS232-HS
    hwid: USB VID:PID=0403:6011 SER=umd-ksoc-001 LOCATION=1-10.4.3:1.1
/dev/ttyUSB3     
    desc: Quad RS232-HS - Quad RS232-HS
    hwid: USB VID:PID=0403:6011 SER=umd-ksoc-001 LOCATION=1-10.4.3:1.2
/dev/ttyUSB4     
    desc: Quad RS232-HS - Quad RS232-HS
    hwid: USB VID:PID=0403:6011 SER=umd-ksoc-001 LOCATION=1-10.4.3:1.3
sbourdeauducq commented 6 days ago

Typical symptom of POR and/or nRST not pulsed. Did you install the jumpers and run the script?

jbqubit commented 5 days ago

I had to rebuild the development PC (Ubuntu 2022.04 LTS) and so have had an opportunity to work with the newly updated documentation -- looking great! I'm using a Kasli-SoC that hasn't been touched in more than six months -- kasli_soc_por.py and local_run.sh worked fine. It's on this new PC that the openocd communication problem arises.

$ python ~/experiment/zynq-rs/kasli_soc_por.py

$ ./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 (4) in DAP response

$ groups
rabi adm dialout cdrom sudo dip plugdev lpadmin lxd sambashare

$ python -m serial.tools.list_ports -v
/dev/ttyUSB0        
    desc: Valon USB UART - Valon USB UART
    hwid: USB VID:PID=0403:6001 SER=12202221 LOCATION=1-7.2
/dev/ttyUSB2        
    desc: Quad RS232-HS - Quad RS232-HS
    hwid: USB VID:PID=0403:6011 SER=umd-ksoc-001 LOCATION=1-4.4.3:1.1
/dev/ttyUSB3        
    desc: Quad RS232-HS - Quad RS232-HS
    hwid: USB VID:PID=0403:6011 SER=umd-ksoc-001 LOCATION=1-4.4.3:1.2
/dev/ttyUSB4        
    desc: Quad RS232-HS - Quad RS232-HS
    hwid: USB VID:PID=0403:6011 SER=umd-ksoc-001 LOCATION=1-4.4.3:1.3
jbqubit commented 5 days ago

Related to https://github.com/m-labs/artiq/issues/2250