2014-01-24 64 views
1

我开发了PCI-e fpga卡的linux设备驱动程序,它正在工作。 现在,假设我想在同一台PC上安装两个(相同的)这些pci-e卡。 它是如何工作的?我试图对司机进行insmod,我期望有一个“双重探测”的回调,但事实并非如此。那么,我该如何处理这种情况呢?由小号码?有人可以帮助我吗?多个设备,单个驱动程序

ps pci卡是fpga开发板,所以它们实际上是“一样的”卡,也许我必须区分硬件中的某些东西?

+0

驾驶员如何识别该卡?如果同时存在几张相同的卡片,驱动程序应该看看它是否已经自行初始化并跳过已启用的卡片。它可以注册以接收多个IRQ(例如)并映射多个存储区以进行访问。 ISR最容易做的就是扫描所有启用的寄存器,看看是否有任何事情要做。 – wallyk

+0

卡的区别在于它们的插槽。您的PCI驱动程序的'.probe'回调应该被调用两次。 –

回答

0

如果您的驱动程序是内置的而不是加载的内核模块,情况会有所不同。尝试将其作为内置驱动程序进行编译,并确保您的卡都已开机。这样,你的两张牌就会被枚举,然后由同一个驱动程序进行探测。

事实上,你insmod驱动程序,在这种情况下,它依赖于代码本身和你写驱动程序的方式。如果你能分享司机,我会很有帮助。