Nach der Veröffentlichung des Final Updates von OS4 hat sich in Bezug auf die externen IDE Kontroller und deren U-Boot Variablen einiges geändert. Leider bezieht sich mein erster FAQ Eintrag zu diesem Thema noch auf die alte Schreibweise der U-Boot Variablen.
Damit aber jeder die notwendigen Informationen auch für das OS4 griffbereit hat, hier nochmal eine Zusammenstellung der wichtigsten Variablen, die ich in meinem ersten FAQ bereits beschrieben hatte.
Eine vollständige Beschreibung aller vorhandenen SI0680 Variablen sowie generelle Informationen über die OS4 Unterstützung dieses Kontrollers findet sich auf der OS4 Cd unter dem Pfad OS4_Install_CD:Documentation/sii0680ide_dev/sii0680ide_dev.doc.
Das Setzen der DMA Modi in der U-Boot Konsole wird jetzt über folgende Env-Variable gesteuert:
sii0680ide_xfer
Hiermit kann der Transfer Modus der 4 möglichen Geräte pro Kontroller als 4-stellige Buchstabenfolge eingestellt werden. Dabei stehen die Buchstaben von Links nach Rechts für folgende Geräte:
Primärer Master, primärer Slave, sekundärer Master, sekundärer Slave
Dabei folgende Buchstaben für die gewünschten Einstellungen verwenden (Achtung, Groß;;;;-Kleinschreibung beachten!!):
0 - Automatic PIO (Der Driver verwendet das vom Gerät als besten PIO Modus unterstützten Modus aus)
a - PIO 0 ( 3 MB/s, modeid 8)
b - PIO 1 ( 5 MB/s, modeid 9)
c - PIO 2 ( 8 MB/s, modeid 10)
d - PIO 3 ( 11 MB/s, modeid 11)
e - PIO 4 ( 16 MB/s, modeid 12)
A - UDMA 0 ( 16 MB/s, modeid 64)
B - UDMA 1 ( 25 MB/s, modeid 65)
C - UDMA 2 ( 33 MB/s, modeid 66)
D - UDMA 3 ( 44 MB/s, modeid 67)
E - UDMA 4 ( 66 MB/s, modeid 68)
F - UDMA 5 (100 MB/s, modeid 69)
G - UDMA 6 (133 MB/s, modeid 70)
Für CD/DVD Laufwerke sollte 0 verwendet werden, für Harddisks kann ich nur DRINGENST empfehlen, einen unterstützten DMA Modus einzutragen. Wird ein nicht unterstützter Modus ausgewählt fällt der Treiber automatisch auf den bestmöglichen, vom Laufwerk gemeldeten Modus zurück.
Eine andere interessante Variable ist
sii0680ide_conf
Damit kann dem Treiber bekannt gemacht werden, welche Typen von Geräten an welchem Port betrieben werden. Auch hier wird wieder eine 4-stellige Buchstabenfolge angegeben, diesmal aber nur Zahlen mit den Werten 0-2, die folgende Bedeutung haben:
0 : Kein Gerät angeschlossen
1 : Harddisk
2 : DVD/CD-Rom oder Brenner
Die Kombination 1020 bedeutet also folgendes:
Primärer Master: Harddisk
Primärer Slave: Nichts angeschlossen
Sek. Master: DVD/CDROM
Sek. Slave: Nichts angeschlossen
Soweit erstmal die wichtigsten Änderungen. Es existieren noch weitere Variablen um den Timeout des IDE Busses einzustellen, Interrupt Steuerung zu aktivieren/deaktivieren etc. Ich kann nur jedem empfehlen, die beiliegende Dokumentation zu lesen.
Ich habe z.B. folgende Schritte ausgeführt, um mein SI0680 nach einem U-Boot Reset neu einzustellen:
Booten abgebrochen, im U-Boot den internen VIA Kontroller (Boot Options) abgeschaltet und das verwendete Boot Laufwerk auf External Parallel Controller gestellt.
Danach dann die Einstellungen gespeichert, wieder das Booten abgebrochen und in der U-Boot Konsole dann eingegeben:
setenv sii0680ide_xfer F000
setenv sii0680ide_conf 1020
saveenv
Damit war für meine Festplatte am prim. Master UDMA5 aktiv und mein CDRom am sek. Master auf Auto-Speed gestellt. Ausserdem habe ich dem Kontroller noch mitgeteilt, das eine HD und ein CDRom jeweils am Masterport hängen (Wert 1020).
Viel Spass mit OS4!