2012-08-28 26 views
1

從Linux內核3.0開始,PCI探測是自動的搭配:pci_register_driver(&pci_driver);老式PCI探測

Linux內核2.6及以上,程序員必須創建一個字符設備,並通過PCI列表走,選擇合適的PCI和做與它一起工作。你能告訴我這個過程的步驟,爲什麼在使用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有很大不同,除了所有的探測,匹配的驅動程序和設備等...由「設備核心」處理,而不是由PC處理我司機。

有關詳細說明,請參見this PDFthis page