【发布时间】:2014-11-27 07:53:31
【问题描述】:
我已经为 PCI-e fpga 卡开发了一个 linux 设备驱动程序,它正在工作。 现在,假设我想在同一台电脑上安装两个(相等的)这些 pci-e 卡。 它是如何工作的?我试图安装驱动程序,我期待一个“双重探测”回调,但事实并非如此。那么,我该如何处理这种情况呢?按次要号码?有人可以帮我吗?
ps pci卡是fpga开发板,所以它们实际上是“相同”的卡,也许我必须在硬件中区分一些东西?
【问题讨论】:
-
驱动如何识别卡?如果有可能同时存在几张相同的卡,驱动程序应该查看它是否已经初始化了自己并跳过任何已经启用的卡。它可以注册以接收多个 IRQ(例如)并映射多个内存区域以供访问。 ISR 做的最简单的事情是扫描所有启用的寄存器,看看是否有任何事情要做。
-
卡片根据插槽进行区分。您的 PCI 驱动程序的
.probe回调应该被调用两次。
标签: linux-kernel kernel kernel-module pci