内核中具有多个设备的PCIe

时间:2019-01-06 07:03:37

标签: linux-kernel linux-device-driver

PCIe 与多个设备一起使用时(例如:串行,canbus,i2c等):

  1. 是否有一个用于处理所有这些设备的单个内核pci驱动程序

  2. 还是应该使用多个pci设备驱动程序来实现,每个驱动程序都使用相同的DEVICE_ID和VENDOR_ID?

如果使用第一种方法:

这是否意味着我们不需要调用“ request_region”,因为在不同的驱动程序中使用了相同的资源?

如果我们使用上面的第二种方法:

中断例程如何?是所有这些设备的单个中断例程吗?

任何人都可以引用内核源代码树中的示例吗?

1 个答案:

答案 0 :(得分:1)

基于您的其他问题之一,我假设您正在谈论的是带有通过PCIe连接到ARM CPU复合体的自定义IP块的FPGA。

  1. PCIe驱动程序不处理任何这些设备。这些IP块的内存映射/空间将通过PCIe公开。当这些外围设备中的任何一个触发IRQ时,该IRQ将成为PCIe MSI IRQ,并分配给相应外围设备驱动程序的IRQ处理程序。

  2. 不会有多个PCIe设备驱动程序。

查看我对您的另一个查询here的答复。