Hardware > Hardware (Classic 16-/32-Bit)
68K30L, Falcon und Suska-III-T2
wfoerster:
Also wenn Du die Erkennung als Bootlaufwerk für TOS meinst, so habe ich getestet, nichts plausibles gefunden und auch nicht weiter gesucht. Ich habe den Verdacht, dass auch die TOS2.06 nicht astrein programmiert zu sein scheint, so dass Laufzeiteffekte (Race-Conditions) verantwortlich dafür sein könnten. Die verschiedenen TOS-Versionen haben zum Beispiel mehr oder weniger Probleme beim Floppy-Zugriff.
Grüße
Wolfgang
ToPeG:
Wenn das Timing das Problem sein könnte so würde ich raten, das der DMA ein Tacken zu schnell oder zu langsam gegenüber der CPU reagiert. Die GLUE wäre dabei auch ein Ort wo man schauen könnte.
Solche Laufzeitprobleme Beträfen nur den Command- und den Status-Zyklus, da im anderen Fall alles Hardwareseitig läuft, was ja funktioniert. Das würde auch erklären warum es mit machen TOS Versionen funktioniert und mit anderen nicht. Beim TOS 2.06 wurden mache Timings geändert. Zudem wurden die verschiedenen TOS-Versionen mit unterschiedlichen Compilerversionen erstellt. Das kann zu Unterschieden führen.
Da es mit anderen Treibern Funktioniert würde ich raten, das das TOS zu schnell mit dem Lesen ist. Was natürlich auch an der GLUE liegen kann, die den DMA-IC nicht schnell genug selektiert.
Es kann aber auch sein das die GLUE zu schnell ist. Der DMA könne noch nicht fertig sein, wenn die Daten gelesen werden sollen.
Aber das ganze ist mehr oder weniger geraten. Ich habe mit zwar mal die SUSKA-Sourcen angeschaut, aber genaues habe ich nicht mehr im Kopf.
Braucht man erst anzugehen wenn alles andere fertig ist.
ToPeG:
Nachdem ich mich gerade etwas mehr mit IDE Beschäftige habe ich mir die Beiträge hier auch mal durchgelesen. Du hast geschrieben, das du IORDY und das positive DMACK per UND miteinander verknüpfst hast. Dadurch wird das ausgehende /DMACK verzögert bis die Platte fertig ist.
Das funktioniert wenn die Festplatten schnell genug sind. Kommen sie gerade aus einem Ruhezustand oder sind anderweitig beschäftigt kommt es zu einem Bus-Timeout.
Die Lazy-OR Lösung verlängert das /DMACK bis die Platte fertig ist. Das ist auch nicht perfekt. Zu einem Timeout sollte es jedoch nicht so schnell kommen. Aber ich habe nicht herausfinden wie der 68000 auf ein verlängertes /DMACK reagiert.
Idealer weise sollte der Prozessor einen Wartezyklus einlegen und etwas anderes machen, solange IORDY LOW ist. Wie sich das realisieren lässt wüste ich nicht.
wfoerster:
Klingt sehr interessant,
ich werde mir das ansehen. Nun habe ich noch eine kleine Bitte: könntest Du mir sagen, was Du mit Lazy-OR meinst? Ich kenne nur WIRED-OR, was natürlich im FPGA nur im Toplevel in den I/O-Zellen zu realisieren ist (FPGA-intern gibt es keine hochohmigen Leitungen).
Grüße
Wolfgang
ToPeG:
Ja ich meine WIRED-OR.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln