首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >旧式PCI探测

旧式PCI探测
EN

Stack Overflow用户
提问于 2012-08-28 13:20:12
回答 1查看 533关注 0票数 1

从Linux kernel3.0开始,pci探测是自动的:pci_register_driver(&pci_driver);

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-28 15:29:35

我想你指的是Linux2.4或更早的版本。带有总线、设备和驱动程序的当前内核设备模型一直是2.6系列的一部分。

你的问题到底是什么?

PCI设备的列表是在启动时创建的。然后,在注册驱动程序时,使用pci_driver structure id_table字段与总线上存在的设备进行匹配。然后,使用指向匹配的设备结构的指针调用pci_driver探测函数。

为总线上存在的每个设备注册

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

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

有关详细说明,请参阅this PDFthis page

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12153190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档