Sourcecode Fortschritt
-
version = "0.0.3.83 - Rev: 1284"
usb_hc.c: Implementierung für u/o/ehci vorgesehen unter Nutzung der Schnittstelle transfer->HC->type
-
version = "0.0.3.84 - Rev: 1285"
ohci.h/c: USB-Transfers vorbereitet
Für Tests:
OHCI_USB_TRANSFER aktivieren in ohci.c, line 16Offene Fragen/TODOs:
Beim Anstecken eines Low-Speed-Device (einfache Maus) werden sofort alle Konsolen belegt (Grund nicht klar).Die Zahl der von Anfang an vorhandenen rootports bei ohci reicht nicht aus, wenn weitere ports von ehci abgegeben werden können, im Prinzip alle. Hier sollte ein separater Portmanager her, der alle usb-Ports verwaltet.
Aber die Abstraktion von USB und HC ist gelungen!
-
version = "0.0.3.85 - Rev: 1286"
ohci.c korrigiert
-
version = "0.0.3.86 - Rev: 1287"
ohci.c: Korrektur im handler (OHCI_MAX)
uhci.h/c: analog ohci in usb eingehängt
-
version = "0.0.3.87 - Rev: 1288"
ohci/usb weiter ausgebaut
-
version = "0.0.3.88 - Rev: 1289"
ohci-usb-Transfer weiter entwickelt.
Transaktionen/Transfer laufen offenbar. Daten sind noch nicht korrekt.Screenshot: http://www.henkessoft.de/OS_Dev/Bilder/rev.1289_ohci_USB_Transfer.PNG
-
version = "0.0.3.89 - Rev: 1290"
ohci/usb weiter entwickelt. Verbindung zwischen setup-TD und Rest fehlt noch in der TD-Queue (durch die Umstellung der TDs von vorne nach hinten ist das nun schwieriger. MrX: wie hast du dir das gedacht bei deinem Modell?). Hier wird um Ideen gebeten.
TD->cond (condition = status) wird nun mit 15 (NOT ACCESSED) gefüllt, damit man sieht, ob der TD korrekt abgearbeitet wird (bei setup klappt es bereits).
-
version = "0.0.3.90 - Rev: 1291"
ohci.c: Fehler (hoffentlich) korrigiert, curOHCI ersetzt.
Transfers laufen noch nicht.
-
version = "0.0.3.91 - Rev: 1292"
ohci.h/c: Fehlerkorrekturen (Ausgabe der ED -> TD queue zur Kontrolle)
ED -> ED -> ... | | TD TD | | TD TD
Ketten sind ok (check der struct member)
Nun muss man den OHCI noch ordentlich gemäß spec bewegen.
-
version = "0.0.3.92 - Rev: 1293"
Fehler in ohci.c beseitigt, z.B. tailPointer und directions
-
version = "0.0.3.93 - Rev: 1294"
ohci.h/c: Transfer-Mechnanismus läuft nun endlich, aber Fehler bei den Paketen in den Transactions: Device: no response to IN or no handshake (OUT)
-
version = "0.0.3.94 - Rev: 1295"
ohci.c: donehead begonnen
-
version = "0.0.3.95 - Rev: 1296"
ohci: weiter entwickelt, Transfers funktionieren aber noch nicht korrekt.
-
version = "0.0.3.96 - Rev: 1297" experimentelle Version (Rückbau von ohci_createQTD_SETUP auf rev. 1290 - ist zwar falsch, aber die transaction läuft)
-
version = "0.0.3.97 - Rev: 1298"
ohci.h/c: noch einige Korrekturen, es hakt aber immer noch gewaltig. ^^
-
Version 0.0.3.98:
- OHCI aufgeräumt, kleinere Fehler behoben
- Kein #PF bei OHCI mehr, wenn usbTransferStringUnicode aufgerufen wird
- Kein #PF bei unbekanntem Partitionstyp mehr
- SCSI-Commands werden bis zu 5 mal wiederholt bei Fehlschlag
- Kleinigkeiten & Codestil
-
version = "0.0.3.99 - Rev: 1300"
ohci.c: Ausgaben verbessert, Zeitschleifen in issueTransfer
Hauptproblem: Device: no response to IN or no handshake (OUT). (bei Setup Transaction)
-
version = "0.0.3.100 - Rev: 1301"
ohci.h/c: weitere Veränderungen (hoffentlich Fehler behoben, usb läuft noch nicht)
Wichtiger Hinweis: // #define _EHCI_ENABLE_ in os.h
Wer den EHCI nutzen möchte, dies bitte vorher aktivieren.
-
version = "0.0.3.101 - Rev: 1302"
ohci.c: Ausgaben erweitert zur Kontrolle ( skip, halted in HeadPointer )
EHCI wieder enabled
-
version = "0.0.3.102 - Rev: 1303"
ohci weiter entwickelt. Immer noch Fehler beim ersten TD (setup).
VBox zeigt übrigens immer toggle 0 an, obwohl ohci.c sauber togglet. Auch buffer werden nicht angezeigt. Tests mit PCs sind aussagekräftiger.