Linux kernel 内核中有多个设备的PCIe

Linux kernel 内核中有多个设备的PCIe,linux-kernel,linux-device-driver,Linux Kernel,Linux Device Driver,将PCIe与多个设备一起使用时,例如:串行、CAN总线、i2c等: 是否有一个单一的内核pci驱动程序来处理所有这些设备 或者应该通过使用多个pci设备驱动程序来实现,每个驱动程序使用相同的设备ID和供应商ID 如果我们使用第一种方法: 这是否意味着我们不需要调用请求区域,因为相同的资源用于不同的驱动程序 如果我们使用上述第二种方法: 中断程序呢?所有这些设备都是单中断程序吗 有人能从内核源代码树中引用一个例子吗?基于您的另一个问题,我假设您谈论的是通过PCIe连接到ARM CPU复合体的自定义

将PCIe与多个设备一起使用时,例如:串行、CAN总线、i2c等:

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

或者应该通过使用多个pci设备驱动程序来实现,每个驱动程序使用相同的设备ID和供应商ID

如果我们使用第一种方法:

这是否意味着我们不需要调用请求区域,因为相同的资源用于不同的驱动程序

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

中断程序呢?所有这些设备都是单中断程序吗


有人能从内核源代码树中引用一个例子吗?

基于您的另一个问题,我假设您谈论的是通过PCIe连接到ARM CPU复合体的自定义IP块的FPGA

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

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


请参阅我对您的另一个问题的回答。

2。为什么不呢?如果PCIe设备代表多个功能,那么它将是多个驱动程序。否则,它将使用相同的驱动程序集+一种MFD。