Linux-Treiberentwicklung: Unterschied zwischen PCI- und PCIe-Treiber?

9

Ich programmiere einen PCI-Treiber für Linux 2.6.36.

Hier ist mein Code. Meine Frage ist, muss ich einige Änderungen vornehmen, wenn ich diesen Treiber für ein PCIe-Gerät verwenden möchte?

%Vor%     
Peter 28.08.2012, 12:56
quelle

3 Antworten

2

Vom Standpunkt der Software aus sind PCI- und PCI Express-Geräte im Wesentlichen identisch. PCIe-Geräte hatten den gleichen Konfigurationsraum, BARs und unterstützen (normalerweise) dieselben PCI INTx-Interrupts.

Beispiel # 1: Windows XP hat keine speziellen Kenntnisse über PCIe, läuft aber gut auf PCIe-Systemen.

Beispiel # 2: Meine Firma bietet sowohl PCI- als auch PCIe-Versionen einer Peripheriekarte an, und sie verwenden das gleiche Windows / Linux-Treiberpaket. Der Fahrer "kennt" den Unterschied zwischen den beiden Boards nicht.

Allerdings: PCIe-Geräte nutzen häufig "fortgeschrittene" Funktionen wie MSI , Hotplugging, erweiterten Konfigurationsbereich, etc Viele dieser Funktionen existierten auf Legacy-PCI, wurden aber nicht verwendet. Wenn es sich um ein Gerät handelt, das Sie entwerfen, liegt es an Ihnen, ob Sie diese erweiterten Funktionen implementieren oder nicht.

    
myron-semack 31.08.2012, 12:48
quelle
3

Soweit ich mich erinnere, gibt es für den Gerätetreiber, den ich geschrieben habe, keinen Unterschied zwischen den PCI-Geräten und den PCIe-Geräten. Mein Gerätetreiber verwendet dieselben Aufrufe wie Ihre: chrdev , pci_resource , irq und mem_region .

    
Didier Trosset 28.08.2012 13:55
quelle
0

PCIe ist eine erweiterte Version mit mehr Geschwindigkeit und Fähigkeiten. Die grundlegenden Funktionen bleiben für alle Standards gleich. Die Treiberregistrierung und das Bereitstellen der Handler ist ein und dasselbe, da sich alle PCI-Treiber beim selben Linux-PCI-Subsystem registrieren.

    
Venkatesh 09.01.2015 07:22
quelle

Tags und Links