4

根据 PCI 标准,设备是根据供应商 ID、设备 ID 和总线编号来识别的。相同类型的所有设备都具有相同的供应商 ID 和设备 ID。如果我将两个这样的设备放在同一总线上,比如总线 0。PCI 软件子系统将如何区分这两者?

如果这种情况在 PCI 中是不可能的,那么通过 PCI Express Switch 可以做到吗?

4

3 回答 3

3

是的,完全没问题。主机通过插槽区分相同的设备。

于 2010-11-09T17:44:10.150 回答
3

PCI 和 PCI Express 设备由 Bus/Device/Function 标识,这对于系统中的每个设备来说都是唯一的。供应商和设备 ID 只是在某个总线/设备/功能上找到的设备的属性。

枚举板卡时,驱动程序通常会扫描 PCI 配置空间(遍历所有已安装的 PCI 设备),直到找到一个或多个与预期的供应商和设备 ID 匹配的设备,可能还有子系统 ID。一旦找到匹配项,它应该将总线/设备/功能记录为打开设备的“句柄”。

正确编写的软件应该找到所有匹配的供应商/设备,将它们放在一个表中,然后让您选择要使用的那个(例如 /dev/mydevice0、/dev/mydevice1 等)。但是,我看到过在第一场比赛中停止的懒惰软件。

于 2014-03-27T14:04:46.557 回答
0

据我所知,每个 PCI 设备都可以由 (Bus,Device,Function) 唯一地描述。考虑您的情况(2 个设备安装了相同的 VID 和 DID),我认为它们必须位于不同的 PCI 总线上!如果它们必须在同一总线中,请使它们的设备或功能编号不同

于 2014-03-27T02:17:36.800 回答