Sourcecode Fortschritt
- 
					
					
					
					
 0.0.5.16 - Rev: 1682 UFI zusammen mit supernicky u. MrX bezüglich Lesen u. Schreiben mit Vbox/ohci und echter (durchgereichter) usb-Floppy zum Laufen gebracht. Schöne Zusammenarbeit! 
 
- 
					
					
					
					
 Version 0.0.5.17: - USB: Einige Daten von usb_device_t nach usb_msd_t verschoben 
 - UHCI, xHCI: Timeout auf bis zu 1,5 Sekunden erhöht
 - UFI-Code vereinfacht
 - Const-Correctness erhöht, Code aufgeräumt
 
- 
					
					
					
					
 0.0.5.18 - Rev: 1684 UHCI Debug Code optimiert. 
 
- 
					
					
					
					
 Version 0.0.5.19: - EHCI, OHCI: Transfer-Retry-Mechanismus entfernt (nicht funktionsfähig) 
 - xHCI: Arrays mit Größe MAX_HC_SLOTS+1 auf MAX_HC_SLOTS reduziert
 - xHCI: D-Bits im ICC gesetzt
 - Heap: Zwei Fehler in free() korrigiert: Verschiebe korrekte Anzahl an Regionen beim Merge, Keine Freigabe nicht allokierter Regionen
 - Bugfix: list_destruct() hinterlässt keine toten Pointer
 - Bugfix: strncicmp() (Userlib) korrigiert
 
- 
					
					
					
					
 0.0.5.20 - Rev: 1686 uhci debug-code verbessert, usb-Funktionen für weitere notwendige Experimente angezeigt. 
 
- 
					
					
					
					
 0.0.5.21 - Rev: 1687 In os.h neu geschaffen: _USB_FUNCTION_DIAGNOSIS_ // Show USB Functions Damit lassen sich usb-Abläufe besser verfolgen. 
 
- 
					
					
					
					
 Version 0.0.5.22: - UHCI/OHCI/EHCI: Von USB-2.0-Spezifikation geforderte 100ms-Wartezeit zwischen conncect detect und port reset eingebaut 
 - USB: Ablauf bei getDeviceDescriptor verbessert
 - xHCI: Aus unerfindlichen Gründen nötiges waitForKeyStroke wieder eingebaut
 - Tools: Bibiliotheksdatei für CppCheck hinzugefügt
 
- 
					
					
					
					
 Version 0.0.5.23: - Makro für einfache Timeout-Warteschleifen implementiert und an diversen Stellen eingesetzt (Vorschlag von ehenkes) 
 - Mutex: Assertion, wenn mutex_unlock() auf geöffnetes mutex ausgeführt wird
 - PCI: Zugriffe auf Konfigurations-Ports mit mutex gesichert
 - Devicemanager: Zugriffe auf Port-/Disklisten mit mutex gesichert
 - IRQ: Registrierung eines zweiten Handlers mit cli/sti geschützt
 - Bei ASSERTION_FAILURE wird nun ein Stacktrace ausgegeben
 
- 
					
					
					
					
 Version 0.0.5.24: - Heap: malloc kann Speicher innerhalb einer PAGE anfordern (HEAP_WITHIN_PAGE) 
 - Sysenter: Handler korrigiert (Funktioniert noch immer nicht stabil)
 - Debug-Ausgaben z.T. neu sortiert
 - serial_log() ersetzt \n automatisch durch \r\n
 - printfe() implementiert: Setzt textColor(ERROR), druckt Fehlermeldung, setzt Farbe zurück
 - Einige Allokationen bei "verschachtelten" Speicherbereichen oder Buffer-Arrays eingespart
 
- 
					
					
					
					
 0.0.5.25 - Rev: 1691 Abziehen eines Hubs an einem Root port wird nun behandelt (Port-/Diskliste aktualisiert). Versuche: Bis zu zwei Hubs in Linie an einem Highspeed-Rootport am test-PC. TODOs: 
 - Ports-Size wächst dabei weiter, betroffener port wird auf 0 gesetzt. Hierdurch entstehen Lücken in der Nummerierung.
 - otherPorts behandeln (Hinweis MrX), ist diese Liste überhaupt notwendig?
 - Attach/Detach an einem Hub (nicht root hub!) wird noch nicht erkannt, kein Interrupt.Anmerkung: 
 Bisher müssen Devices bereits beim Booten am Hub (nicht root hub!) angesteckt werden, um erfasst zu werden. Hier fehlt ein "Watchdog system" für diese Hubs.Hinweis MrX: Interrupt EP des Hubs beachten (eleganter als watchdog?) 
 
- 
					
					
					
					
 0.0.5.26 - Rev: 1692 Behandlung von Hubs und Geräten an Hubs weiter verbessert. Watchdog system implementiert. Attach/Detach an einem Hub (nicht root hub!) wird inzwischen erkannt. Bisher getestet auf test-PC an einem Highspeed-Port mit ehci. *TODOs: 
 - Ports-Size wächst dabei weiter, betroffener port wird auf 0 gesetzt. Hierdurch entstehen Lücken in der Nummerierung.
 - otherPorts behandeln (Hinweis MrX), ist diese Liste überhaupt notwendig?
 - bei zwei Hubs in Linie gibt es noch Probleme, wenn beide gleichzeitig abgezogen werden (Zeit-/Ablaufproblem).
 *list_show implementiert. 
 
- 
					
					
					
					
 0.0.5.27 - Rev: 1693 Verhalten beim Aufbau/Abbau von Hub-/Deviceketten weiter stabilisiert. Hub-Watchdog-System überwacht An-/Abstecken. Probleme gibt es noch beim Abziehen des Hubs am Roothub bei Roothub <- Hub <- Hub <- Devices (kann aber auch am betreffenden Hub liegen). 
 
- 
					
					
					
					
 0.0.5.28 - Rev: 1694 usb_hub.h/c: weiter stabilisiert (zusammen mit MrX) Versuche mit test-PC am Highspeed-Port mit ehci verlaufen weitgehend positiv, d.h. der prinzipielle Ablauf ist stimmig. Am xhci-Port klappt der Setup des Device am Hub nicht. 
 
- 
					
					
					
					
 0.0.5.29 - Rev: 1695 usb_hub.h/c: #define für Konstanten eingeführt 
 siehe usb2 spec Table 11-15, 11-16, 11-17
 
- 
					
					
					
					
 0.0.5.30 - Rev: 1696 ehci: structs/functions for periodic list (for interrupt transfers and isochronous transfers) started 
 
- 
					
					
					
					
 0.0.5.31 - Rev: 1697 Interrupt Transfers versuchsweise am Hub in ehci gestartet (auskommentiert) Anmerkung: ///#define _UHCI_ENABLE_ in os.h, weil es störte (Kreuzempfindlichkeit 
 ^^)./// TEST 
 // usb_InterruptTransfer(hub->device, hub->endpointInterruptHUB);
 ///TEST
 befindet sich in usb_hub.c, Zeile 130.
 
- 
					
					
					
					
 Version 0.0.5.32: - USB: Interrupt-Code aufgeräumt; Periodic list initialisiert 
 - Cleanup beim abziehen von Hubs verbessert
 
- 
					
					
					
					
 Version 0.0.5.33: ----- Experimentelle Version, USB derzeit instabil ----- - USB: Control-Transfer-Typen in Funktionen usb_controlIn(), usb_controlOut() und usb_controlSet() zusammengeführt 
 - USB-HC: Trennung von rootPorts und otherPorts aufgehoben, Initialisierung von hc_port_t in usb_hc.c zusammengefasst
 - htons()/ntohs() in Inline-Assembler implementiert (xhcg)
 - Bugfix: Laden von Dateien funktionierte nicht zuverlässig
 - Bugfix: Speicherzugriffsfehler in usb_getHubStatus behoben
 - Bugfix: Einrückungen bei strg+d (Portliste) korrigiert
 
- 
					
					
					
					
 0.0.5.34 - Rev: 1700 In setupHub wurde die Hilfsfunktion usb_isHubPortConnected verwendet, sodass nun angesteckte Devices korrekt einem setupDevice zugeführt werden. usb_hubWatchdog (usb_hub.c) wurde in ckernel.c auskommentiert, da diese Funktion noch nicht wie gewünscht arbeitet. TODO: korrigieren oder ergänzen/ersetzen durch interrupt-Transfer 
 
- 
					
					
					
					
 0.0.5.35 - Rev: 1701 - Analytische Funktion usb_showHubPortStatus geschaffen, damit wurde der versteckte Fehler lokalisiert! 
 - Fehler in usb_getPortStatus(...) beseitigt (versehentlich Zeiger auf Zeiger, ein Klassiker bei void* buffer)
 - Zeit im Einzeldurchlauf bei ehci_addToPeriodicScheduler von 10 auf 30 ms erhöht. Damit läuft der interruptTransfer (zur Zeit nur Demonstration, noch keine Verwendung des Resultats) sicherer
 - hubWatchdog auf jede zweite Sekunde eingestelltTODO: Weitere Bemühungen zur Stabilisierung (sicherer Ablauf, Vermeidung von #PF, reboots und usb errors, evtl. Einsatz des One-Byte-Ergebnisses des Interrupt-Transfers). Danke an MrX für die Vereinfachung des ports-Handlings (funktioniert gut)