FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
5791 Discussions

PCIe Arria 10 HIP MSI-X

agula
New Contributor I
275 Views

Hello,

 

I'm wondering if I could receive any guidance or documentation for MSI-X interrupt generation. For example, could I receive more clarification on the Vector Control field defined in the MSI-X table? What does the concept of masking refer to and how do I detect if it is masked? Additionally, how do I pass a message to the interrupt service routine of the host SW? There is a message field in the MSI-X table, can I put the message I want the software to receive when servicing the ISR? If not, what is the standard way for doing this? 

 

Thank you! 

0 Kudos
5 Replies
SengKok_L_Intel
Moderator
267 Views

Hi,


You may refer to the following link, section 8.1.3 (or page 115) for some of the detailed info regarding the implement MSI-X interrupts.

https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug_a10_pcie_avst.pdf


Regards -SK


agula
New Contributor I
259 Views

Thank you for sharing this. Based on this section, it seems the only way to send data to the software is by creating a separate memory write to a DMA region in the software driver. Is this the case? 

 

 

SengKok_L_Intel
Moderator
257 Views

Yes, software needs to setup the MSI-X table via any of the BAR at the application layer.


Regards -SK


SengKok_L_Intel
Moderator
234 Views

If further support is needed in this thread, please post a response within 15 days. After 15 days, this thread will be transitioned to community support. The community users will be able to help you with your follow-up questions. 


agula
New Contributor I
219 Views

Hi,

When trying to use MSI-X interrupts on a virtual function, the host crashes. The host crashes when trying to use request_irq(). When using MSI-X interrupts in virtual functions can you use any BAR entry for the MSI-X table ? Does this memory region also need to be readable by the host machine or only write able ? Setting up the MSI-X table from the host PC doesn't seem to be an issue with the physical function. The user guide for this says multi-function variants can only access MSI-X table from BAR 4. Although, I am not sure if this is a mistake because the mega function wizard does not restrict me from setting the BAR to 0.  

 

Thank you

 

Reply