Pci 驱动程序如何在 Linux 中工作

Ami*_*mar 5 linux linux-device-driver pci-bus

我正在尝试了解 pci 驱动程序如何在 PC 环境中的 Linux 中工作,但确实发现很难通过。在采取行动之前,我喜欢了解以下陈述。

  1. PCI 规范允许系统最多承载 256 条总线。(总线 = pci 插槽?)

  2. 每条总线最多可承载 32 个设备。

  3. 每个设备可以是一个多功能板,最多有八种功能。(这条线到底是什么意思?)

在我的 PC 上只能看到三个 pci 插槽(这些插槽被称为总线),并且从每个插槽有一条 irq 线指向 cpu。

看来我的理解很错误,这就是为什么想要获得更多观点。

Hen*_*nes 3

我至少可以回答你的部分问题。

C1 C2 C3 .... 芯片组/PCI 桥接器
 | | | |
 +---+----+ .... -----+

C1、C2、C3等是白色的PCI连接器。
这是插入 PCI 卡的位置。这些通常称为PCI 插槽

底部的线是 PCI 总线。
同一PCI总线上的所有设备都可以直接相互通信。
由于它们位于共享总线上,因此只有一个设备可以同时处于活动状态。


我标记的部分 Chipset/PCI 桥通常是 PCI 总线与计算机其他部分连接的地方。这可以是到芯片组或另一个 PCI 总线的连接。


我在 Ars Technica 的档案上找到了一些可能有帮助的链接:
http://archive.arstechnica.com/paedia/p/pci-express/m-pcie-1.html
http://archive.arstechnica.com/paedia/p /pci-express/m-pcie-2.html
...