我在运行RHEL 7.3的两台桌面计算机上有一个自定义PCIe设备,linux内核3.10
因此,在第二台计算机上,PCIe设备/驱动程序可以正常工作直到 DMA启动。 DMA操作将工作一分钟左右,然后设备/驱动程序将停止工作,这意味着读取任何BAR寄存器返回0xFFFFFFF,并且DMA停止。 NOW ,如果我删除驱动程序模块,然后执行pci删除,然后执行pci重新扫描并重新加载驱动程序模块,一切都会在以后一切正常。
我觉得这是一个IOMMU安全问题,但我不确定如何解决这个问题。知道什么会导致PCI设备驱动程序只在重新扫描后才能正常工作吗?