AHCI Interrupts
-
Hallo liebe OS-Dev Gemeinde,
dieses Forum ist wirklich klasse und ich freue mich das es so viel Interesse an der Entwicklung eines eigenen Kernels gibt.
Mein Problem sind die Interrupts vom AHCI-Controller.
Mein Kernel wird in VirtualBox und auf meinem realen PC getestet.
Die Befehle des lesen und schreiben meiner Festplatten funktionieren einwandfei, aber Interrupts bekomme ich leider nur in der VirtualBox.
Der reale PC (intel i5) liefert einfach keine Interrupts und ich weiß nicht mehr was ich noch probieren soll.
Ich hoffe es gibt hier jemanden der das Problem schon mal hatte.vielen Dank schon mal für euer Bemühen
-
Mmh, ich hatte bisweilen nur mit normalem ATA zu tun, allerdings gabs da bei den Interrupts auch Schwierigkeiten. Kannst du mal die betreffenden Codestellen zeigen, an denen du Interrupts erwartest? Dann koennte man zumindest halbwegs den Fehler einschraenken.
Mal ins Blaue geraten: Spec und Realitaet unterscheiden sich. Hatte ich bei ATA auch, die Interrupts haben nie korrekt gefeuert. Dann vor jedem erwarteten Interrupt mal sinnlos das Status-Register gelesen, auch wenn nicht benoetigt und zack, es ging.
-
Ja also mit konkreten Code könnte ich auf jeden Fall erst morgen antworten.
Vielleicht sollte ich noch sagen das meine Interrupts durch den I/O Apic zum local Apic der zweiten CPU weitergeleitet werden. Aber den Keyboard sowie Timer Interrupt kann ich entgegennehmen. Und in VirtualBox laufen auch die AHCI-Interrupts.
Ich weiss jetzt nich genau aber ich lese die Port-InterruptStatus Bits auf jeden Fall aus.Und die zeigen auch auf dem real PC richtige Werte an, aber es kommt halt kein Interrupt.
Der Interrupt wird ausgelöst wenn der Befehl beendet ist, so ist es jedenfalls in Virtualbox.Von daher ist irgendwas anders auf dem real wie Du halt schon gesagt hast.
Man das ist manchmal echt komisch.
-
Von daher ist irgendwas anders auf dem real wie Du halt schon gesagt hast.
Man das ist manchmal echt komisch.Das macht OS-Development interessant. Die Emulatoren vereinfachen vieles. Genaues Lesen der Spezifikationen zeigt den Weg.