PYNQ: PYTHON PRODUCTIVITY

Uio device

Hello,

I am currently working on adding the PYNQ software on a custom board. So far I have the Ubuntu 18.04 image from Pynq Z2 working on my board. I did a basic overlay(the example from the readthedocs) and it worked without any problem. My actual design consists of a dma. When i am trying to see what’s in the dma object in python, i get the following error “ValueError: Could not find UIO device for interrupt pin for IRQ number 0”. I looked into the source code where this error is thrown and found out that I don’t have any uio device in /dev. When I look in /sys/devices/soc0/amba_pl/410… i can find “generic-uio” there.
I also checked on the pynq z2 board in /dev and I can see 2 uio devices.
For that I have two questions: what are the two uio devices on pynq z2 and why on my board i don’t see any?
Thank you in advance!

If the “fabric” device is in the device tree then the issue is likely in one of two places

  1. Make sure that CONFIG_UIO_PDRV_GENIRQ is set in your kernel configuration (/proc/config.gz will let you know)
  2. Ensure uio_pdrv_genirq.of_id="generic-uio"is on the kernel command line.
  3. Check dmesg to see if there are any errors relating to UIO

The first two should happen automatically if you’re building the boot files using the meta-pynq layer in the PYNQ repository. If you are using meta-xilinx-pynq then you need to make sure that the UIO module is modprobed with the correct argument, again this should be done for you at boot.

Peter

1 Like

Thank you for your answer Peter. Indeed I was missing the “fabric” device. After adding it to my device tree everything worked out perfectly.

Alex