ARM9 UART Memory Mapped IO - Linux Kernel Module

Gast #1162664
Lesenswert?

Hallo,

ich habe hier einen Samsung SC32412 (=S3C2410 bzgl. UART) ARM9 mit einem 
2.6.16 Linux Kernel mit dem ich gerne IR Fernbedienungssignale 
"verarbeiten" würde. Dazu habe ich LIRC mit den entsprechenden 
Kernelmodulen kompiliert und installiert – keine Problem soweit. Der 
LIRC Treiber läuft, scheint allerdings nicht richtig mit den Memory 
Mapped IOs der UART umgehen zu können. Im Quelltext wird erwähnt, das 
evtl. ein Aufruf von „ioremap“ helfen könnte. Also die Frage ist, wie 
man direkt auf die seriellen Schnittstellen zugreifen kann. Zur Zeit 
versuche ich folgendes:

Es gibt die (physikalische) Adresse:
1
#define S3C2410_PA_UART0 0x50000000
Den Speicher „holen“, remappen, und lesen.
1
request_mem_region(0x50000000, 8, LIRC_DRIVER_NAME);
2

3
char* baseptr = ioremap(0x50000000);
4

5
unsigned int value = readb(baseptr + offset);

Natürlich werden alle Rückgabewerte getestet... es treten keine Fehler 
auf. Der „Treiber“ läuft und liefert irgendeine Ausgabe, die aber 
sicherlich nichts mit einer der seriellen Schnittstellen zu tun hat :(
Es gibt auch noch eine weitere (virtuelle) Adresse:
1
#define S3C2410_VA_UART0 0xF0800000
Allerdings verstehe ich nicht was ich mit ihr noch anfangen könnte.

Bin nach wirklich langem googlen inzwischen etwas verzweifelt und bitte 
um Hilfe.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren