MSI-X support in OS X 10.11???

I am developing a device driver for a couple PCI based devices connected via ThunderBolt. One of the devices supports MSI-X interupts, but not standard MSI interrupts. When calling getInterruptType, I do find an interrupt of type kIOInterruptTypePCIMessaged, but setting the interruptEventSource with that index results in no interrupts being received.


The exact same code functions with an alternate device that does support MSI interrupts, so I believe the code to be correct.

If I fall back to INTX the card functions normally.


A search of the internet reveals no information on whether OS X supports devices that implement only MSIX interrupts and not MSI interrupts.


]SO, does OS X handle PCI devices with no type 5 MSICAP and only type 0x11 (17d) MSIXCAP?


Thanks in advance...

Isn't MSI-X only PCI 3.0? If so, that would require Thunderbolt 3.0 which isn't avaiable on the Mac platform yet. Thunderbolt 2.0 is the latest that's availble on a Mac which means PCI 2.2 and MSI only I believe.

PCIe and PCI3.0 were developed in 2004. I believe PCIe should work with MSI-X.

PCIe was developed some time ago but PCIe 3.0 was released in November 2010 by the PCI-SIG. It was in the 3.0 specification that MSI-X was introduced to overcome some issues with MSI. Because MSI-X is a 3.0 feature, it's not in Thunderbolt or Thunderbolt 2 as they are PCIe 2.2 based technologies.


You may confirm this by checking the PCIe and Thunderbolt specs or for a higher (and easier navigation), the relevant topics in Wikipedia.

What I mean was PCI is not equal to PCIe exactly. PCI 3.0 feature ( I am talking about MSI-X ) was already included in PCIe 2.0. Since the Thunderbolt2 uses PCIe2.0 protocol, it should be capable of MSI-X.

Sorry about that. I confused myself. You are right that it should be there even if it's listed as optional in the spec.

MSI-X support in OS X 10.11???
 
 
Q