Intel 82599 NIC legacy (INTx) interrupts not being received
Posted: Fri Sep 28, 2018 11:26 am
I've written a driver for the 82599. I'm now trying to enable interrupts rather than using a polling method.
My system has a PCIe bus, but I've enabled legacy (INTx) interrupts using the Command register in the PCI config space and disabled MSI and MSI-X in the capabilities list.
I've written a test code that enables an interrupt and then causes an interrupt though software. In the PCI Status register the Interrupt Status bit is set, so I'm assuming the interrupt has been sent by the device but I'm not receiving any interrupt and I've written dummy handlers for every interrupt. None of them are called.
I know the PCIe bus sends Assert_INTx and Deassert_INTx messages to emulate legacy interrupts in place of actual out-of-band connections with the APIC. I want to know if I'm missing something here. Is there something I need to do in the APIC to be able to receive and process these Assert_INTx and Deassert_INTx messages? Or for the PCIe bus to be able to send them?
My system has a PCIe bus, but I've enabled legacy (INTx) interrupts using the Command register in the PCI config space and disabled MSI and MSI-X in the capabilities list.
I've written a test code that enables an interrupt and then causes an interrupt though software. In the PCI Status register the Interrupt Status bit is set, so I'm assuming the interrupt has been sent by the device but I'm not receiving any interrupt and I've written dummy handlers for every interrupt. None of them are called.
I know the PCIe bus sends Assert_INTx and Deassert_INTx messages to emulate legacy interrupts in place of actual out-of-band connections with the APIC. I want to know if I'm missing something here. Is there something I need to do in the APIC to be able to receive and process these Assert_INTx and Deassert_INTx messages? Or for the PCIe bus to be able to send them?