【问题标题】:Old style PCI probing老式 PCI 探测
【发布时间】:2012-08-28 15:29:34
【问题描述】:

从 Linux 内核 3.0 开始,pci 探测是自动的:pci_register_driver(&pci_driver);

Linux 内核 2.6 及更早版本,程序员必须创建一个字符设备,并遍历 PCI 列表,选择合适的 PCI 并使用它。你能告诉我这个过程的步骤是什么,为什么在使用PCI驱动之前需要初始化字符设备以及为什么不再需要注册字符驱动。

【问题讨论】:

    标签: linux driver pci


    【解决方案1】:

    我认为您指的是 linux 2.4 或更早版本。当前带有总线、设备和驱动程序的内核设备模型一直是 2.6 系列的一部分。

    你的问题到底是什么?

    在引导时会生成 PCI 设备列表。然后在注册驱动时,使用pci_driver结构id_table字段来匹配 与总线上存在的设备。然后使用指向匹配设备结构的指针调用 pci_driver 探测函数。

    • pci_driver 已注册
    • 对于总线上存在的每个设备,将设备的 id 元素(产品 id 和供应商 id)与 pci_driver 提供的 id_table 中的 id 元素进行比较
    • 如果匹配,则调用 pci_driver 探测函数,在该探测函数中您可以注册字符设备或块设备等。

    所以它与 2.4 没有太大区别,除了所有探测、匹配驱动程序和设备等......由“设备核心”而不是 pci 驱动程序处理。

    详细解释见this PDFthis page

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 2013-06-27
      • 1970-01-01
      • 1970-01-01
      • 2014-04-18
      • 2023-03-18
      相关资源
      最近更新 更多