Linux 是否可以让两个内核驱动程序使用相同的供应商和设备ID在一条PCIe总线上注册

Linux 是否可以让两个内核驱动程序使用相同的供应商和设备ID在一条PCIe总线上注册,linux,kernel,driver,Linux,Kernel,Driver,我正在尝试创建两个linux内核驱动程序来访问相同的PCIe设备(使用相同的供应商和设备ID)。 理想情况是使用FPGA控制meny传感器(光传感器,…),并将控制方法映射到PCIe端点。 强大的CPU(x86)将通过FPGA的PCIe接口通过寄存器访问传感器。 但是,我对PCIe没有任何经验。 那么,有谁能给我一个建议吗 这个概念正确吗?你做错了-我打赌所有这些LED和传感器都是通过I2C和PMBus等标准总线连接的。让您的FPGA通过PCIe呈现I2C控制器,PCIe驱动程序注册为Linux

我正在尝试创建两个linux内核驱动程序来访问相同的PCIe设备(使用相同的供应商和设备ID)。 理想情况是使用FPGA控制meny传感器(光传感器,…),并将控制方法映射到PCIe端点。 强大的CPU(x86)将通过FPGA的PCIe接口通过寄存器访问传感器。 但是,我对PCIe没有任何经验。 那么,有谁能给我一个建议吗


这个概念正确吗?

你做错了-我打赌所有这些LED和传感器都是通过I2C和PMBus等标准总线连接的。让您的FPGA通过PCIe呈现I2C控制器,PCIe驱动程序注册为Linux I2C总线提供程序,而不是LED、传感器等。驱动程序是通过I2C总线与不同设备通信的I2C驱动程序

是的,您是对的。我在FPGA上实现了一个I2C控制器,并将其导出到PCIe端点。所以我的CPU可以通过PCIe总线访问传感器。我已经用mfd(多功能驱动程序)实现了一个原型。Mfd可以使用PCI供应商和设备ID获取资源,并将资源分配到每个驱动程序(I2C控制器、UART控制器…)。这正是我需要的。谢谢你的建议。