Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: OsDevNewbie am 28. January 2015, 15:37

Titel: Fehler in CDI-AHCI Treiber?
Beitrag von: OsDevNewbie am 28. January 2015, 15:37
Kann es sein dass die ahci_request Funktion nicht funktioniert? Bei mir kommt nämlich kein Interrupt an und im PIC sind alle Interrupts aktiviert.
Vielleicht stimmt bei mir ja etwas nicht. Hier der Quellcode zu meinem OS: https://github.com/Gurgel100/Kernel/tree/develop (https://github.com/Gurgel100/Kernel/tree/develop)
Ich hoffe ihr könnt mir helfen.
Titel: Re: Fehler in CDI-AHCI Treiber?
Beitrag von: kevin am 28. January 2015, 21:57
Womit testest du denn? Ich kann dir definitiv sagen, dass der Treiber auf mindestens zwei OSen läuft, wenigstens unter qemu und Virtualbox.

Meine Vermutung ist, dass deine Implementierung des CDI-Interfaces für Interrupts ein Problem hat, obwohl ich es auf den ersten Blick nicht sehe. Ein paar printfs sollten dir näheres verraten, warum nichts beim Treiber ankommt.
Titel: Re: Fehler in CDI-AHCI Treiber?
Beitrag von: OsDevNewbie am 28. January 2015, 22:02
Also das Interruptinterface von CDI funktioniert einwandfrei, denn der ATAPI-Treiber funktioniert einwandfrei. Der AHCI-Treiber hängt in der Schleife fest in der Funktion ahci_request. Aber vielen Dank für deine Antwort. Ich habe so dass Gefühl, dass der Speicherbereich des PCI-Gerätes falsch ist.

Ich teste unter VirtualBox. Ich wollte auf meiner Testmaschine auch mal Tyndur laufen lassen aber das stürzt immer mit einem Pagefault ab. Ansonsten teste ich noch auf Bochs, aber ich glaube dort ist es nicht möglich ein ahci-device zu simulieren und mit Qemu kenne ich mich nicht aus.
Titel: Re: Fehler in CDI-AHCI Treiber?
Beitrag von: OsDevNewbie am 29. January 2015, 16:50
Ich habe den Fehler gefunden. Es war ein Problem mit meiner Speicherverwaltung. Aber trotzdem danke für deine Rückmeldung.
Er funktioniert jetzt einwandfrei.
Titel: Re: Fehler in CDI-AHCI Treiber?
Beitrag von: kevin am 29. January 2015, 18:50
Cool. :)

Wenn ich deinen Code richtig in Erinnerung habe, ist das Long Mode? 64 Bit war bisher nämlich auch ungetestet.
Titel: Re: Fehler in CDI-AHCI Treiber?
Beitrag von: OsDevNewbie am 30. January 2015, 02:04
Ja mein Kernel ist für den Long Mode.
Somit kann ich hiermit bestätigen: Der Treiber funktioniert auch im 64-Bit-Modus. :-D