Fragen zur Programmierung des Festplattencontrollers
-
Hallo zusammen,
ich beschäftige mich gerade mit der Programmierung des IDE Controllers.
Das Lesen und Schreiben von Sektoren funktioniert recht gut (Virtual PC).Das ganze erfolgt über das AT-Task-File (Registerprogrammierung).
Nun gibt es ja auch die Möglichkeit mittels LBA die Sektoren zu adressieren.Kann mir jemand sagen wie das programmiert wird? Die Register nehmen
nur Kopf, Zylinder und Sektornummer auf, keine 48 oder 64 Bit LBA Nummer.Hat jemand ein Beispiel oder einen Link dazu parat?
Wie sieht die Sache denn bei SCSI aus?
Im Buch von Herr Messmer sind alle Befehle sehr gut beschrieben, was ich aber
vermisse ist, wie ich die Befehle an die Schnittstelle senden kann???Register und Ports scheint es nicht zu geben.
Wie kann ich denn z.B. die Kapazität oder den Status meines CD-Laufwerks ermitteln?
Gruß, Nicky
-
Umrechnung LBA CHS: http://www.lowlevel.eu/wiki/Cylinder_Head_Sector und http://www.lowlevel.eu/wiki/LBA
CDROM, SCSI: http://wiki.osdev.org/ATAPI
allgemein findest Du hier Links: http://www.henkessoft.de/OS_Dev/OSDEV Ressourcen.html
-
Das läuft über die selben Register wie bei IDE?
Mit ATAPI entfällt doch die Umrechnung von LBA nach CHS, da dies in
den Befehlen übergeben wird oder?Ich werde morgen mal mein Glück versuchen.
Danke schonmal
Nicky
-
Ja, SCSI läuft mit LBA. Achtung, auf Endian-Orientierung achten.
siehe auch: http://wiki.osdev.org/PCI_IDE_Controller