Hi Folks (@PeterOgden),
We’ve got several interrupts hooked up to an axi interrupt controller have been following the various guides tutorials. On our RFSoC4x2 it appears that Pynq has found things appropriately, is using /dev/uio4, raw irq 121 (what I’d expect from the TRM).
I’ve written some of my own test code around the interrupt controller register space and also poked at some of the pynq internals. As best I can tell the callback setup by the UioController simply never gets called.
# NB self.uio = open('/dev/uio4', 'r+b', buffering=0)
asyncio.get_event_loop().add_reader(self.uio, functools.partial(UioController._uio_callback, self))
catting /proc/interupts
seems to always show no interrupts are received:
52: 0 0 0 0 GICv2 121 Level fabric
Inspection of the various axi_interrupt control registers though sems to suggest the IRQ very much should have been issued with the registeres showing active interrupts and that the master was properly enabled when I tried awaiting on the various interrupts in the design. And manually calling my interrupts parent set() does indeed kick off a whole host of interrupt events.
The next place I’d think to look would be in the GIC registers, but I’ve not seen a need to do this discussed anywhere in the forums. We are working off of pynq 3.0.1 and 2022.1.