从Linux内核3.0开始,pci探测是自动的:pci_register_driver(&pci_driver);
Linux内核2.6及更早版本,程序员必须创建一个字符设备,并遍历PCI列表,选择合适的PCI并使用它。你能告诉我这个过程的步骤,为什么在使用PCI驱动程序之前需要初始化字符设备,以及为什么不再需要注册字符驱动程序。
答案 0 :(得分:1)
我认为你指的是linux 2.4或更早版本。当前具有总线,设备和驱动程序的内核设备模型一直是2.6系列的一部分。
你的问题到底是什么?
在启动时制作PCI设备列表。然后,当注册驱动程序时,pci_driver
结构id_table
字段用于匹配
使用总线上的设备。然后使用指向匹配的设备结构的指针调用pci_driver探测函数。
所以它与2.4没有什么不同,除了所有的探测,匹配的驱动程序和设备等......都由“设备核心”处理,而不是由pci驱动程序处理。