2014-01-24 85 views
1

我開發了PCI-e fpga卡的linux設備驅動程序,它正在工作。 現在,假設我想在同一臺PC上安裝兩個(相同的)這些pci-e卡。 它是如何工作的?我試圖對司機進行insmod,我期望有一個「雙重探測」的回調,但事實並非如此。那麼,我該如何處理這種情況呢?由小號碼?有人可以幫助我嗎?多個設備,單個驅動程序

ps pci卡是fpga開發板,所以它們實際上是「一樣的」卡,也許我必須區分硬件中的某些東西?

+0

駕駛員如何識別該卡?如果同時存在幾張相同的卡片,驅動程序應該看看它是否已經自行初始化並跳過已啓用的卡片。它可以註冊以接收多個IRQ(例如)並映射多個存儲區以進行訪問。 ISR最容易做的就是掃描所有啓用的寄存器,看看是否有任何事情要做。 – wallyk

+0

卡的區別在於它們的插槽。您的PCI驅動程序的'.probe'回調應該被調用兩次。 –

回答

0

如果您的驅動程序是內置的而不是加載的內核模塊,情況會有所不同。嘗試將其作爲內置驅動程序進行編譯,並確保您的卡都已開機。這樣,你的兩張牌就會被枚舉,然後由同一個驅動程序進行探測。

事實上,你insmod驅動程序,在這種情況下,它依賴於代碼本身和你寫驅動程序的方式。如果你能分享司機,我會很有幫助。