We have created a custom image for a Zynq 7000 series board using the sdbuild procedure.
The image boots and things work as expected until we attempt to instantiate an Overlay.
---------------------------------------------------------------------------
TimeoutError Traceback (most recent call last)
TimeoutError: [Errno 110] Connection timed out
During handling of the above exception, another exception occurred:
TimeoutError Traceback (most recent call last)
<ipython-input-3-5b9d30186967> in <module>
----> 1 o=Overlay('uart_loopback.bit')
/usr/local/share/pynq-venv/lib/python3.8/site-packages/pynq/overlay.py in __init__(self, bitfile_name, dtbo, download, ignore_version, device)
352
353 if download:
--> 354 self.download()
355
356 self.__doc__ = _build_docstring(self._ip_map._description,
/usr/local/share/pynq-venv/lib/python3.8/site-packages/pynq/overlay.py in download(self, dtbo)
418 Clocks.set_pl_clk(i)
419
--> 420 super().download(self.parser)
421 if dtbo:
422 super().insert_dtbo(dtbo)
/usr/local/share/pynq-venv/lib/python3.8/site-packages/pynq/bitstream.py in download(self, parser)
185
186 """
--> 187 self.device.download(self, parser)
188
189 def remove_dtbo(self):
/usr/local/share/pynq-venv/lib/python3.8/site-packages/pynq/pl_server/embedded_device.py in download(self, bitstream, parser)
594 fd.write(str(flag))
595 with open(self.BS_FPGA_MAN, 'w') as fd:
--> 596 fd.write(bitstream.binfile_name)
597
598 self.set_axi_port_width(parser)
TimeoutError: [Errno 110] Connection timed out
xilinx@pynq:~$ xbutil list
INFO: Found total 1 card(s), 1 are usable
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
System Configuration
OS name: Linux
Release: 5.4.0-xilinx-v2020.2
Version: #1 SMP PREEMPT Fri Feb 11 16:30:23 UTC 2022
Machine: armv7l
Glibc: 2.31
Distribution: PynqLinux, based on Ubuntu 20.04
Now: Tue Feb 15 20:14:24 2022 GMT
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
XRT Information
Version: 2.8.0
Git Hash: 7c93966ead2dec777b92bdc379893f22b5bd561e
Git Branch: temp
Build Date: 2022-02-11 16:44:44
ZOCL: 2.8.0,7c93966ead2dec777b92bdc379893f22b5bd561e
Failed to open device[0]
ERROR: Card index 0 is out of range
from pynq import Overlay
o=Overlay('design_1.bit')
Directly after booting, fails with a timeout.
DMESG shows
[ 736.723243] fpga_manager fpga0: writing design_1.bin to Xilinx Zynq FPGA Manager
[ 739.455939] fpga_manager fpga0: Error after writing image data to FPGA
[ 739.461832] fpga_manager fpga0: writing design_1.bin to Xilinx Zynq FPGA Manager
[ 741.969149] fpga_manager fpga0: Timeout waiting for PCFG_INIT
[ 741.973608] fpga_manager fpga0: Error preparing FPGA for writing
The bitstream and corresponding HWH are generated in Vivado 2020.2 from a n upgraded 2020.1 project which loads on our 2.5 based image build using the Petalinux flow.
Is the missing IRQ expected during boot? Perhaps the interrupt is not needed when FPGA manager is used?
[ 10.277828] zocl: loading out-of-tree module taints kernel.
[ 10.287758] [drm] Probing for xlnx,zocl
**[ 10.287792] zocl-drm amba:zyxclmm_drm: IRQ index 0 not found**
[ 10.292274] [drm] PR Isolation addr 0x0
[ 10.334772] [drm] Initialized zocl 2018.2.1 20180313 for amba:zyxclmm_drm on minor 0
[ 11.854714] random: crng init done
[ 11.854728] random: 7 urandom warning(s) missed due to ratelimiting
[ 16.245128] macb e000b000.ethernet eth0: link up (100/Full)
[ 16.245179] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 20.125404] [drm] Pid 410 opened device
[ 20.125495] [drm] Pid 410 closed device
[ 20.126268] [drm] Pid 410 opened device
[ 20.138953] [drm] Pid 410 closed device
[ 24.995003] [drm] Pid 265 opened device
[ 24.995063] [drm] Pid 265 closed device
[ 24.995709] [drm] Pid 265 opened device
[ 25.001867] [drm] Pid 265 opened device
[ 25.001951] [drm] Pid 265 closed device
[ 25.002671] [drm] Pid 265 opened device
[ 25.002724] [drm] Pid 265 closed device
[ 25.002881] [drm] Pid 265 opened device
Again any advice or insights on how to debug would be appreciated.
How do I get more information on fpga_manager fpga0: Error after writing image data to FPGA?
No worries Geoff, it’s easily done :).
It would be helpful if the tools printed out a nicer error message when there is an attempt to load an incorrect bitstream.