Sourcecode Fortschritt
-
Version 0.0.3.80:
- Erkennung und Abgabe von Fullspeed-Geräten
- Erkennung von fehlgeschlagenen Transfers ergänzt, Timeout von 5 zur Wiederholung
- Codestil und -vereinfachungen
-
Diese Version läuft bezüglich usb hervorragend (vor allem richtig schnell) auf VMWare, allerdings schlecht (transfers klappen nicht vernünftig) auf meinem EHCI-Test-PC (lief früher dort perfekt).
Hispeed sticks werden auf dem PC abgewiesen und nach ohci (noch nicht in usb-Transfers eingebunden) abgegeben.
-
Version 0.0.3.81:
- USB-Abstraktion verbessert, zahlreiche EHCI-Abhängigkeiten beseitigt
- statische disk- und usb2_Device_t-Arrays beseitigt
- Patch von neuer_user für FTP-Client: Shortcuts umgebaut, neue Funktionen (Upload, Dateirechte), Ausgaben verbessert
-
version = "0.0.3.82 - Rev: 1283"
asyncScheduler: Zeitsteuerung optimiert, so dass sowohl VMWare als auch PC mit verschiedenen Sticks läuft.
performAsyncScheduler(e, true, true, 1 + transfer->packetSize/100);
timeout = 3 * velocity + 1;
sleepMilliSeconds(10);Bei 512 Byte: ( 3 * 6 + 1 ) * 10 = 190 ms
-
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