Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TimeoutError: [Errno 110] Connection times out after multiple reconfigurations #4

Open
edhgit opened this issue Nov 2, 2021 · 0 comments

Comments

@edhgit
Copy link

edhgit commented Nov 2, 2021

Thank you for a clear explanation of how to partially reconfigure the PYNQ board. After installing the code and generating the design, the jupyter notebook works exactly as you describe.

However, repeating the partial reconfiguration a number of times invariably results in an fpga-manager "Connection Timeout [Errno 110" at random instances. This behavior can be replicated with the minimal python code shown below. Other partial reconfiguration programs on the PYNQ experience the same timeout.

Code:

from pynq import Overlay
ol = Overlay('gpio_pr.bit')
count=1
while(1):
    print(count)
    count = count + 1
    ol.pr_download('gpio_0', 'led_5.bit')
    print('LEDS = '+str(ol.ip_dict['gpio_0/leds_gpio']['parameters']['C_DOUT_DEFAULT']))
    ol.pr_download('gpio_0', 'led_a.bit')
    print('LEDS = '+str(ol.ip_dict['gpio_0/leds_gpio']['parameters']['C_DOUT_DEFAULT']))

Output:

xilinx@pynq:~/jupyter_notebooks/partial_reconfig$ sudo python3 t.py
1
LEDS = 0x00000005
LEDS = 0x0000000a
2
LEDS = 0x00000005
LEDS = 0x0000000a
3
LEDS = 0x00000005
LEDS = 0x0000000a
4
LEDS = 0x00000005
LEDS = 0x0000000a
5
LEDS = 0x00000005
LEDS = 0x0000000a
6
LEDS = 0x00000005
LEDS = 0x0000000a
7
LEDS = 0x00000005
LEDS = 0x0000000a
8
fpga_manager fpga0: Error after writing image data to FPGA
fpga_manager fpga0: Error after writing image data to FPGA
TimeoutError: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "t.py", line 7, in
ol.pr_download('gpio_0', 'led_5.bit')
File "/usr/local/lib/python3.6/dist-packages/pynq/overlay.py", line 452, in pr_download
pr_block.download(bitfile_name=partial_bit, dtbo=dtbo)
File "/usr/local/lib/python3.6/dist-packages/pynq/overlay.py", line 1061, in download
self._load_bitstream(bitfile_name)
File "/usr/local/lib/python3.6/dist-packages/pynq/overlay.py", line 1102, in _load_bitstream
self.bitstreams[bitfile_name].download()
File "/usr/local/lib/python3.6/dist-packages/pynq/bitstream.py", line 187, in download
self.device.download(self, parser)
File "/usr/local/lib/python3.6/dist-packages/pynq/pl_server/device.py", line 770, in download
fd.write(bitstream.binfile_name)
TimeoutError: [Errno 110] Connection timed out

Do you know what causes this problem and how to resolve it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant