Alexander Minor
|
PCI/PCIe interrupts don't work as expected
|
Alexander Minor
02/02/2024 7:52 AM
post122476
|
PCI/PCIe interrupts don't work as expected
Hi,
I am currently porting a device driver from QNX7.1 to QNX8.0 and am observing
weird behavior (maybe a bug?) when it comes to PCI/PCIe interrupts.
When I only use PCIe devices, the interrupt handling using InterruptAttachThread()
or InterruptAttachEvent() and InterruptWait() works like expected.
When I add a PCI device to this combination, this device will stay inside
InterruptWait() and not return anymore.
I am using the x86_64 BSP and I tried it on two DELL Optiplex 9010.
Using only a single PCI device (no PCIe) in those PC's also shows different
results. In one of them it worked as expected, in the other it also stayed inside
InterruptWait().
Flags used for InterruptAttachThread/Event: _NTO_INTR_FLAGS_NO_UNMASK | _NTO_INTR_FLAGS_END.
Flags used for InterruptWait: _NTO_INTR_WAIT_FLAGS_UNMASK | _NTO_INTR_WAIT_FLAGS_FAST.
The devices use legacy interrupts, not MSI.
I attached the output of pci-tool for the working (pcie_only) and failing (pcie_and_pci)
environment. The only thing I see is, that they share an interrupt. The devices
have the vid 15cf and use IRQ 16 & 18. There is also an Intel USB Controller
that uses IRQ 16.
Are there any known PCI/PCIe issues for specific CPU/chipsets?
Does somebody know a way I could debug/resolve this issue?
|
|
|