Multi vector msi interrupt in Jetson AGX Xavier

we are trying to make use of multi vector msi interrupts in Jetson AGX Xavier board with sdk jetpack version 4.4. When we try to allocate irq vertors using,

pci_alloc_irq_vectors(pdev, 1, 2, PCI_IRQ_MSI),

The function returned 1 as the return value. Can we use multi vector msi in Jetson AGX Xavier? If yes, suggest me the ways to implement multi vector msi interrupts in Jetson AGX Xavier.

That should work, please refer to PCI MSI interrupt generation issue in Jetson - Jetson & Embedded Systems / Jetson Xavier NX - NVIDIA Developer Forums

Hi kay,
I referred to the link you have shared. In that, they have allocated irq vector for only one, I’m trying to use multi vector msi interrupt. When I tried to allocate multiple irq vector, say 2 or more, it is returning only one as allocated vector. Kindly suggest me a way, if I have to use more than one msi irq vectors.

1 Like

It might be that the endpoint device has only one interrupt enabled. Check the output of lspci’s MSI field
Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
Check that Count have value of 1/2 or 2/2.

I’m getting this, when I check output of lspci’s MSI field

Capabilities: [50] MSI: Enable+ Count=1/1 Maskable+ 64bit-
Address: fffff000 Data: 0000
Masking: 00000000 Pending: 00000000

Count=1/1 means endpoint device hasn’t allocated more than 1 interrupt. You need to enable more than one count the in the endpoint device first.

Thanks. After I enable more than one count in the endpoint device, it worked.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.