Portzugriffe unter Linux.

12/12/2008 - 01:03 von Martin Freiberg | Report spam
Hallo,

Da ich mit meinem Wissensstand nicht mehr auf dem laufenden bin,
wie werden unter Linux > 2.6.16 direkte Portzugriffe auf eine
IO-Karte vorgenommen?

Ich möchte dazu einen kleinen Treiber schreiben, und bin mir nicht
im klaren ob inzwischen die IO-Zugriffe auch gemapt werden und man
so nur noch readb und writeb verwendet, oder auch weiterhin inb
und outb?

Ich habe mal ein wenig in den Kernelsourcen zur seriellen
Schnittstelle gekramt, bin mir aber nicht sicher ob ich mich habe
verwirren lassen. Dort werden für Portzugriffe wohl readb und
writeb verwendet, oder bin ich da auf einen Treiber für
PCI-Hardware abgedriftet?

Momentan verwende ich eine ISA-Karte (auf einem àlteren Rechner).
Wenn das làuft, dann will ich das ganze auch mit einer PCI-Karte
probieren, wo ich noch absolut keine Erfahrung habe.

Und ja, meine Lektüre ist auch noch auf dem Stand von vor 2000. ;)

Gruß
Martin
 

Lesen sie die antworten

#1 Jan Seiffert
12/12/2008 - 03:29 | Warnen spam
Martin Freiberg wrote:

Hallo,

Da ich mit meinem Wissensstand nicht mehr auf dem laufenden bin,
wie werden unter Linux > 2.6.16 direkte Portzugriffe auf eine
IO-Karte vorgenommen?




Im Kernel?
Im Userspace?
Als UIO-Treiber?

Ich möchte dazu einen kleinen Treiber schreiben, und bin mir nicht
im klaren ob inzwischen die IO-Zugriffe auch gemapt werden und man
so nur noch readb und writeb verwendet, oder auch weiterhin inb
und outb?



Nein, sind nicht alle gemappt, kann AFAIK zumindest die x86 Hardware auch garnicht.

Ich habe mal ein wenig in den Kernelsourcen zur seriellen
Schnittstelle gekramt, bin mir aber nicht sicher ob ich mich habe
verwirren lassen. Dort werden für Portzugriffe wohl readb und
writeb verwendet, oder bin ich da auf einen Treiber für
PCI-Hardware abgedriftet?



Warscheinlich.

Momentan verwende ich eine ISA-Karte (auf einem àlteren Rechner).
Wenn das làuft, dann will ich das ganze auch mit einer PCI-Karte
probieren, wo ich noch absolut keine Erfahrung habe.




Was du zu nehmen hast haengt von der Recource ab:
IOPorts -> inb/outb
Mem -> read/write

Was deine Karte nun hat, das musst du wissen.
Man kann nur als gaaaaanz groben Schaetzwert sagen:
ISA-Karten haben meist IOPorts, PCI-Karten meist Memory.
Aber es ist ja nicht so, das es nicht zu allem eine Ausnahme geben kann.

Und ja, meine Lektüre ist auch noch auf dem Stand von vor 2000. ;)

Gruß
Martin


Gruss
Jan

Murphy's Law of Combat
Rule #3: "Never forget that your weapon was manufactured by the
lowest bidder"

Ähnliche fragen