(+86) 15013630202 sales@pcie.com

PCIe legacy interrupts not working with L4T 35.1

Mar 04, 2024

I am using a capture card on my Xavier that requires the use of legacy PCIe interrupts. The card is behind a Diodes Inc. PI7C9X2G608GP PCIe switch. The card worked fine on all of the L4T 32.x versions with kernel 4.9 but does not work on kernel 5.10. If I direct connect the card it works so it seems to have something to do with the switch. The card vendor tried it on another test system that uses a Broadcom PCIe switch and it worked for them.


I can see in /proc/interrupts that the irq never gets triggered and the system will completely lock up after closing mplayer with nothing printed to dmesg.


By the look of things there have been pretty significant changes to PCI interrupt mapping code between kernel 4.9 and 5.10 so I suspect that to be the cause but I don’t know how to actually fix it.

My current understanding is that the Jetson PCie controller only supports INTa and that PCIe switches swizzle INTA-INTD depending on the port in use. My best guess at what is happening is that INTA from the card is getting mapped to one of the other INTx that does not exist, but that doesn’t explain how it worked with 4.9