cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Participant
Participant
830 Views
Registered: ‎07-20-2018

QDMA USER INTERRUPT

Jump to solution

Hello,

we are using QDMA IP version 3 (rev.3) with Vivado 2019.2.
We noticed that a port called "user interrupt" is available
and that it could be used to generate user interrupts.

We would like to understand how to correctly interface custom logic
with that port and what we should do at driver level
(probably in libqdma https://github.com/Xilinx/dma_ip_drivers/tree/master/QDMA/linux-kernel/libqdma)
to make it work properly.

Thanks for the help.

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Participant
Participant
265 Views
Registered: ‎07-20-2018

Hello eveyone,

the use of the "user interrupt" port on QDMA 3.0 it turned out to be quite simple.

The port protocol is described in the IP documentation and we had no problems with it.

The unclear part concerned the programmability of the these interrupts.
In particular, the doubt was how to associate an MSIX vector to an handler.

It eventually turned out that it is not necessary to that.
In particular, on PF0 with Xilinx QDMA driver in use, the generated interrupts
overlap with the error, mailbox, and the data ones.

Thank you.

View solution in original post

4 Replies
Highlighted
Contributor
Contributor
732 Views
Registered: ‎01-13-2020
Be noticed what QDMA 3.0 patched with AR 73179 is newer than 3(rev3) 2019.2
0 Kudos
Highlighted
Participant
Participant
703 Views
Registered: ‎07-20-2018

Hi dmsspb,

thank you for the response.
Yes, we know that a "tactical patch" (AR73179) is available for QDMA IP and
we already tried it without success.

The point is that the user interrupt functionality doesn't seem very well
documented in the currently available documentation
(https://www.xilinx.com/products/intellectual-property/pcie-qdma.html#documentation).

On the FPGA side the user interrupt port is pretty simple and we have already developed
an IP to generate user interrupts through that port.

On the host/driver side the matter seems more obscure.
Infact, if one look at other special type of interrupts, specifically the error and mailbox ones,
the QDMA IP provides dedicated registers to indicate the chosen MSIX vectors for
those interrupts and to ack them. This doesn't not seem true for the user interrupt(s).

Note that the current QDMA IP driver (https://github.com/Xilinx/dma_ip_drivers/tree/master/QDMA/linux-kernel/libqdma)
seems to support user interrupt(s). In particular, it is possible to specify the number
of MSIX vectors to dedicate to user interrupt(s) and a function pointer to an
appropriate IRQ handler.
However, there is no interaction with any QDMA IP register to inform the IP about these choices.

So, we would like to understand what we are missing.

Thank you.

0 Kudos
Adventurer
Adventurer
491 Views
Registered: ‎07-27-2018

Hi,

any news on this?

We are interested in switching from XDMA to QDMA.
In XDMA we take advantage of user interrupts and, for each user interrupt,
there is a dedicated register to specify the corresponding MSI-X vector number.

Is it possible to do the same on QDMA? How?

Highlighted
Participant
Participant
266 Views
Registered: ‎07-20-2018

Hello eveyone,

the use of the "user interrupt" port on QDMA 3.0 it turned out to be quite simple.

The port protocol is described in the IP documentation and we had no problems with it.

The unclear part concerned the programmability of the these interrupts.
In particular, the doubt was how to associate an MSIX vector to an handler.

It eventually turned out that it is not necessary to that.
In particular, on PF0 with Xilinx QDMA driver in use, the generated interrupts
overlap with the error, mailbox, and the data ones.

Thank you.

View solution in original post