06-24-2015 11:27 PM
Hi!
VISA Driver wizard is able to create driver for PCIe card with interrupt support.
This is "legacy" interrupt (came from PCI) with ABCD lines.
It's take so long to determine interrupt source and disable it.
Then I found that on some NI product MSI interrupt is supported.
post - http://forums.ni.com/t5/Multifunction-DAQ/Is-PCI-6225-PCI-2-2-compatible-Can-it-do-MSI-interrupts/td...
article - http://digital.ni.com/public.nsf/allkb/81D497CC840522438625770C0065D891?OpenDocument
Is it possible to use VISA driver with MSI interrupts ?
Thanks!
06-25-2015 03:48 PM
Hi IIvan,
Inherently VISA does not support MSIs.
The .inf file that's generated will not perform the necessary steps to tell the OS that this device is using MSIs. The .inf file has to make changes in the registry for this to happen.
Potentially, you could manually make changes to the .inf file based on the link below.
https://msdn.microsoft.com/en-us/library/ff544246(VS.85).aspx
Regards
06-30-2015 01:38 PM
Hi!
Thank you!
Even if I enable MSI through registry, VISA still will not support it, I'm right ?
Do you have any plans to add MSI or MSI-X support to VISA in near future ?
Thanks again!
10-20-2016 01:26 AM
Hi!
One year has passed. Is there any news about MSI or MSI-X support in VISA ?
Thanks!
10-20-2016 02:55 PM
Hi IIvan,
VISA still doesn't have support for MSI nor MSI-X, it is still necessary to follow the procedure from message 2.
10-28-2016 03:52 AM
Hi!
I already tried it with no success.
Could you explain how in theory this should help ?
MSI interrupts is completely differs from Legacy interrupts.
Legacy interrupt mask intA/B/C/D signals (these signals was in PCI bus, but not exist in PCIe bus).
These signals (for PCIe actually packets with Message setA/B/C/D) are shared between all PCIe devices.
So VISA driver spend a lot of time when it looks who produced this interrupt.
MSI interrupt is actually a Memory Write packet to preallocated address.
In this case VISA should already know which device produced this interrupt.
Also MSI interrupt can contain different interrupt vectors inside of Memory Write packet.
It would be very helpful to get access to vector value.
Thanks a lot!
10-31-2016 11:36 AM
So potentially you could add the MSI's to the driver’s registry following the steps in that first link (https://msdn.microsoft.com/en-us/library/ff544246(VS.85).aspx). However, because VISA does not support MSI's we cannot guarantee that adding the MSI's to the registry will actually add this functionality.
I am unsure why the VISA driver may be taking so long to identify who produced the interrupt.
If using these MSI's with the VISA driver is a persisting issue for you, the next steps may be to post to our Idea Exchange forum, where ideas are monitored by R&D. Here is the link for that forum: http://forums.ni.com/t5/NI-Idea-Exchange/ct-p/ideas
Best of luck,
Spencer R | Applications Engineer | NI
11-08-2016 06:20 AM - edited 11-08-2016 06:39 AM
Hi!
Thanks! I will do it!
P.S. If someone is interested in MSI/MSI-X interrupts support,
please vote here -> http://forums.ni.com/t5/Data-Acquisition-Idea-Exchange/Add-MSI-MSI-X-interrupts-support-to-VISA/idi-...