Build PYNQ OS for ZCU102 with Yocto

This most like means that the UIO driver isn’t configured to bind to the device. There are a couple of ways to do this. Easiest way is to add uio_pdrv_genirq.of_id=generic-uio to the kernel command line. If the UIO device is compiled as a module you can also add a file containing options uio_pdrv_genirq of_id=generic-uio to /etc/modprobe.d and then modprobe uio_pdrv_genirq.

Peter

Hmm ok it seems we have a weird situation. From this recipe the proper file is being added to /etc/modprobe.d and we can go look at it, but modprobe complains about no file found in /lib/modules/5.4.0-xilinx-v2020.2 when we try to run modprobe uio_pdrv_genirq

Is CONFIG_UIO_PDRV_GENIRQ=m in you kernel config?

Hi @PeterOgden sorry for the long delay. There was something in my build that was overriding my settings and it took be awhile to figure out what the problem was, and to try another test on the board.
After getting the UIO module squared away, we also had to modify our firmware to use an Interrupt Controller as discussed here: Zynq PS7 Interrupts - #5 by PeterOgden but now unfortunately we get a parse error when just defining the overlay. Do you have any ideas on why that might be? I’ve attached our block design also if that’s helpful. Thanks!

AXI_DMA.pdf (189.7 KB)

>>> overlay = Overlay('/home/root/AXI_DMA.bit', download=False)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.7/site-packages/pynq/overlay.py", line 330, in __init__
    self.parser = self.device.get_bitfile_metadata(self.bitfile_name)
  File "/usr/lib/python3.7/site-packages/pynq/pl_server/device.py", line 637, in get_bitfile_metadata
    return HWH(hwh_path)
  File "/usr/lib/python3.7/site-packages/pynq/pl_server/hwh_parser.py", line 149, in __init__
    tree = ElementTree.parse(hwh_name)
  File "/usr/lib/python3.7/xml/etree/ElementTree.py", line 1197, in parse
    tree.parse(source, parser)
  File "/usr/lib/python3.7/xml/etree/ElementTree.py", line 598, in parse
    self._root = parser._parse_whole(source)
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 0

Hi @PeterOgden @easmith5 ,
I am trying to run my program only with yocto and I am very new to it. I have added meta-xilinx-pynq layer to the yocto image. It started on the board. Whenever I try to import pynq it shows the no device found error as stated by Emily.

CONFIG_XILINX_APF is enabled in your kernel?

For enabling, where to add it?