While trying to get interrupts working on the Cora-Z7-07S, unsuccessfully so far, I have noticed something in the PYNQ source code that makes me wonder if interrupts are supported on single CPU boards?
In interrupt.py, in the function get_uio_irq it is hardcoded that /proc/interrupts has 7 columns here:
Line 65: if len(cols) >= 7:
However, on the Cora-Z7-07S there are only 6 columns in /proc/interrupts because it’s a single CPU board so for sure the function get_uio_irq does not work.
Changing the hardcoded 7 to a 6 still doesn’t make interrupts work though. Any overlay with an interrupt enabled in an AXI Timer or AXI GPIO will fail as soon as the module is referenced in the Jupyter/python code. I tried several simple examples, including this one from the PYNQ docs, all with the same behavior.
Could it be that interrupts on single CPU board have never been tested? The hardcoded 7 certainly seems to indicate that. Would it be possible to modify something more, besides the hardcoded 7, in the PYNQ source to get interrupts working on the Cora-Z7-07S? Any comments would be appreciated.