Sourcecode Fortschritt
- 
					
					
					
					
 Version 0.0.4.34 - Rev: 1420 
 Ergebnisse aus einem kurzen Code Review. usb_hub.h/c und usb.c ergänzt. Der Zeiger auf den HubDescriptor wird via device->data gespeichert, analog dem MSD-Modul.
 
- 
					
					
					
					
 Version 0.0.4.35: - Speicherverwaltungsproblem bei usb_hub gelöst (JonasOSDever) 
 - Struktur von usb.c, insbesondere usb_setupDevice verbessert
 - Compilerfehler bei aktivierten USB-Diagnoseflags behoben
 
- 
					
					
					
					
 Version 0.0.4.36 - Rev: 1422 
 Nun funktioniert das Abfragen des Hub Descriptors auch auf Hardware mit EHCI und Highspeed Hub (hi/lo Val war verdreht!). 
 
- 
					
					
					
					
 Version 0.0.4.37 - Rev: 1423 
 usb-HubDescriptor von 7 auf 9 byte erweitert und Abfrage angepasst.
 SetConfig vor Abfrage des usb-HubDescriptors.Tests (alles Hardware) mit Hispeed usb slots (EHCI) und drei usb2 Hubs liefen erfolgreich! 
 Einstieg geschafft. 
 
- 
					
					
					
					
 Version 0.0.4.38 - Rev: 1424 usb_hub.h/c: 
 Sämtliche Funktionen von usb2 spec, 11.24.2 Class-specific Requests, versuchsweise für Tests eingebaut.
 
- 
					
					
					
					
 Version 0.0.4.39: - EHCI: 
 -- Async-Scheduler auf Doorbell-Abfrage umgebaut
 -- #PF wegen fehlender initialisierung eines Pointers beseitigt
 -- Verbesserte Dokumentation und Fehlerausgabe
 - C99-Inline-Spezifikation angewandt (führte zu Compilierungsproblemen mit neuem Clang)
 
- 
					
					
					
					
 Version 0.0.4.40 - Rev: 1426 
 Experimenteller Zwischenstand bez. usb_hub.h/c (Funktionen noch korrigiert)
 
- 
					
					
					
					
 Version 0.0.4.41 - Rev: 1427 
 Hub funktioniert! (Hardware-Tests mit drei usb2 Hubs)
 uhci u. usb1 wurden erfolgreich in qemu getestet.Screenshot (Test mit einem usb2 4-Port-Hub mit eingesteckten usb2 Stick): http://www.henkessoft.de/Sonstiges/usbHub.JPG  
 
- 
					
					
					
					
 Version 0.0.4.42 - Revision 1428 - Generischen ATA-Code von hdd.cinata.cverschoben
- hdd_tin- ata_portInfo_tumbenannt und nach- ata.hverschoben
 Version 0.0.4.42 - Revision 1429 -- Fehlende ata.ckorrigiert
 Version 0.0.4.42 - Revision 1430 -- Fehlerhafte Revisionsnummer inckernel.cgefixt
 ~~~ FloppyImage nicht neu gebaut, deswegen immernoch 1428 angezeigt, wenn nicht manuell rebuilded ~~~
 
- Generischen ATA-Code von 
- 
					
					
					
					
 Version 0.0.4.43: - Optimierung bei list_t, ring_t und mutex_t: Unterstützung von Stack-Instanzen - spart malloc/free-Aufrufe, Initialisierungscode und Dereferenzierungen 
 - Unterstützung von Funktionsparameter bei threads: Injektion von Parametern in Stack des tasks mit task_passStackParameter
 - Beseitigung von HACKs bei EHCI, OHCI und UHCI: HCs als Parameter an Threads übergeben, wodurch globale Variablen und sleep-Aufrufe entfallen
 - HC-Anzahl-Limitierung in EHCI, OHCI und UHCI entfernt
 
- 
					
					
					
					
 Version 0.0.4.44: - Generischer USB-HC-Code nach usb_hc.h/c geschoben 
 - Hub-Ports angelegt
 
- 
					
					
					
					
 Version 0.0.4.45 - Revision 1433 
 Eingesteckter usb-stick (usb2) in einem usb2-Hub wird sauber nummeriert und in unseren Gerätemanager integriert. Ein milestone! Erweiterter Test mit echter Hardware: 
 EHCI -> usb2-Hub 1 -> usb2-Hub 2 ->usb2-Hub 3 -> usb2-Stick A && usb2-Stick B
 EHCI -> usb2-Hub 1 -> usb2-Hub 2 && usb2-Hub 3; usb2-Hub 2 -> Stick A; usb2-Hub 3 -> Stick B
 Klappt!     
 
- 
					
					
					
					
 Version 0.0.4.46 - Revision 1434 SYSTEMFREQUENCY = 250 Hz (vorher 100 Hz) 
 EHCI Async-Scheduler von Wartezeit (bisher 10 ms) auf IRQ umgestellt.Ladezeit devmgr.elf (278 KB) vonn 12,6 s auf 5,5 s (hinter drei Hub-Ebenen!) verringert, ca. 50 KB/s. Tests zeigten, dass man mit 1000 Hz bis auf ca. 1,4 s (Wartezeit: 1 ms) herunter kommen kann. Wir entscheiden uns aus Stabilitätsgründen zunächst für 250 Hz. Der Ladevorgang erfolgt in 512 Byte Blöcken. Bei 278 KB also 556 Vorgänge auf usb-MSD Ebene, d.h. pro Vorgang fallen ca. 10 ms an. Problem: 4GB usb-Sticks, die mit Rev. 1433 direkt am Root Port liefen, gehen nun nicht mehr!  
 
- 
					
					
					
					
 Version 0.0.4.47 - Revision 1435 Bedingt durch 250 Hz wurden die Wartezeiten in ehci.c verdoppelt: 
 Zeile 202: 20 ms,
 Zeile 218: 20 ms,
 Zeile 294: 20 ms,
 Zeile 306: 20 ms,
 Zeile 400: 200 ms (reset!),
 Zeile 407: 20 ms.Auch an einer Stelle in uhci.c, zeile 111 (reset): von 50 auf 100 ms. Hinweis: bei Tests wurde ein PF bei usb_destroyDevice gefunden. 
 
- 
					
					
					
					
 Version 0.0.4.48 - Revision 1436 
 usb-Ausgaben zur Übersicht vereinfacht. Hub-Analysen nur bei Debug-Anweisung.
 (versehentlich Version und Rev. nicht hochgezählt in ckernel.c)
 
- 
					
					
					
					
 Version 0.0.4.49 - Revision 1437 
 Sehr störende verbliebene Newline-Ausgabe entfernt, die nach Verlagerung der "important" EHCI-Statusausgaben nach Debug verblieben war und bei der usb-Erkennung und dem usb-Ladevorgang massenweise sinnlose Leerzeilen produzierte. Nun sollten die usb-Ausgaben etwas übersichtlicher sein.HW-Tests (2 baugleiche 4 GB Sticks, beide am root port, jeweils devmgr.elf, 278 KB, zu laden): 
 FAT16: 2,1 s (132 KB/s)
 FAT32: 2,2 s (126 KB/s)Beim ersten Mal trat ein #PF auf (backtrace): 
 eip 116E9A: usb_destroyDevice (116E90)
 eip 112C97: ehci_portCheck (112BE0)siehe ehci.c, Zeile 554 und Zeile 488 
 
- 
					
					
					
					
 Version 0.0.4.50: - ECHI-Wartezeiten teilweise auf 10ms reduziert (dafür Schleifendurchläufe erhöht). Unbegründetes sleepMilliSeconds(100); am Ende von ehci_startHC entfernt 
 - EHCI-Async-Scheduler nicht mehrfach initialisiert und gestartet, Speicherlecks durch mehrfache idleQH-Allokation behoben. (Behebt HW-Probleme)
 - Variablen in ehci_t initialisiert
 - Kleine Verbesserung bei list/ring: Nur vollständige Elemente einhängen (race condition)
 
- 
					
					
					
					
 Version 0.0.4.51 - Revision 1439 HACK am Ende von port reset in ehci.c, um vereinzelte Hardware-Probleme (Prellen zwischen ehci und companion HC) zu vermindern. Ursache noch nicht völlig klar. 
 
- 
					
					
					
					
 Version 0.0.4.52 - Revision 1440 usb_hub.h/c: portStatusAndChange_t in header geschaffen, damit das nicht mehrfach in den Funktionen auftritt. 
 
- 
					
					
					
					
 Version 0.0.4.53: - EHCI-Treiber bei ehci_resetPort und ehci_checkPortLineStatus aufgeräumt 
 - FSManager-Schnittstelle für remove und rename verbessert; Ordnerunterstützung weiter vorbereitet
 - Trennung von Ordnern und Dateien im FAT-Treiber weiterentwickelt, weitere Abstraktion vom RootDirectory