Axi_dma and interrupts on RFsoc 4x2

Is possible to use axi_dma core as described on this site for 7000 series PS with the RFSoC 4x2 PS?
The PYNQ driver for the axi_dma populates the interrupt metadata in axi_dma._interrupts as usual.

{'s2mm_introut': {'controller': 'axi_intc',
  'index': 0,
  'fullpath': 'diagram_test_0/framer_0/axi_dma/s2mm_introut'}}

I get no transfer (hangs) with the RFSoC using a design working on a 7000 series part.

How do I connect the interrupt pin from the axi interrupt controller to the PS? How should the PS interrupt port be configured? I have no found any description here. Is it even possible?

Cheers,
Geoff.

Good question. I am also interested in how to connect the DMA interrupt to PS and use it with PYNQ.

Currently I only use DMA with polling mode, i.e., use dma.sendchannel.wait() and dma.recvchannel.wait() to check if the transfer has finished.

It seems that PYNQ does not provide an API for interfacing DMA interrupts. Though under most scenarios, it suffices to use polling mode rather than interrupt mode.

Hi @ggillett & @godfly,

Have you checked the documentation about interrupts?

I believe that your questions are answered there.

https://pynq.readthedocs.io/en/latest/pynq_libraries/interrupt.html

Mario

Thank you! I didn’t know that PYNQ has support for interrupts. Thank you for your information.

Hi @marioruiz ,

Yes I use that information in my 7000 designs, everything works well.

But does that work with a zynq_MP PS on an ultrascale part (RFSoc4x2 board).
The PS interrupt port is different, are any configuration changes needed in the PS interrupts section?.

Cheers,
Geoff.

Hi @ggillett,

No change, PYNQ will only work on irq0. See an example below:

Mario

Thanks Mario

1 Like