禁用断言未知中断的PCIe设备

时间:2018-11-06 09:54:45

标签: driver interrupt osdev pci pci-e

我目前正在为我的OS开发项目开发基于PCIe的英特尔网卡驱动程序。尽管驱动程序似乎运行良好,但是一旦启用INTA(使用I / O APIC的IRQ 16),我就会不断收到大量中断,这些中断完全阻塞了我的内核。这些不是由网卡引起的(中断原因寄存器全为零),除非在少数情况下网卡实际上接收到了数据包。

我尝试过的事情:

  • 测试其他IRQ触发设置-在“低”电平触发的设置应该是正确的,因为在其他情况下根本没有任何反应(网卡中断应该起作用)。

  • 禁用所有其他PCIe设备:我尝试将0x0400写入每个设备的PCIe cfg space command register(设置中断禁用标志,清除所有其他标志);我只排除了网卡,视频卡和桥接设备。尽管该操作成功完成,但是由于这些中断仍然会发生,因此我不确定是否真的禁用了给定的设备。

将0x0400写入命令寄存器是完全禁用PCIe设备的正确方法吗?

0 个答案:

没有答案