Sourcecode Fortschritt
- 
					
					
					
					
 Version 0.0.4.28: - Speicherlecks in GUI und USB beseitigt 
 - strcpy durch memcpy oder strdup ersetzt, wo möglich
 - USB/*HCI-Abstraktion weiter verbessert
 - deleteNode in IPC implementiert
 - Kleinere Verbesserungen im Netzwerkbereich
 
- 
					
					
					
					
 Version: 0.0.4.29 - rev. 1415: 
 Der Hub wird nun wie ein anderes usb-Gerät nummeriert.Hubs are also USB devices, and the host enumerates a newly attached hub in the same way as other devices. If the hub has devices attached, the host enumerates these after the hub informs the host of their presence. Quelle: http://www.lvr.com/usbcenum.htm Abfragen weiterer am Hub angeschlossener Geräte führen wir momentan noch nicht durch (interrupt Transfer notwendig). 
 
- 
					
					
					
					
 Erstlings-Commit  Version 0.0.4.30 - Rev: 1416 - ATA-Treiber aufgeraeumt, LBA48-Unterstuetzung eingebaut (momentan noch deaktiviert, da nicht praktisch getestet), mehrere Sektoren unterstuetzt, LOG-Ausgaben durch _HDD_DIAGNOSTICS_explizit de- und aktivierbar
- HDDPIODISK in HDDDISK umbenannt; DMA soll spaeter transparent ansprechbar sein
- HDD-Screenshot-Funktion in ckernel.can eingeschalteten HDD-Support geknuepft
- Um Benutzung von HDDDISKbei abgeschaltetem HDD-Support vorzubeugen Definition vonHDDDISKan ein definiertes_ENABLE_HDD_geknuepft (gibt Linker-Error bei versehentlicher Benutzung)
- Helper repinsb/w/l und repoutsb/w/l util.hhinzugefuegt
- Tab in usb.ckorrigiert
 
 
- ATA-Treiber aufgeraeumt, LBA48-Unterstuetzung eingebaut (momentan noch deaktiviert, da nicht praktisch getestet), mehrere Sektoren unterstuetzt, LOG-Ausgaben durch 
- 
					
					
					
					
 Version 0.0.4.31 - Rev: 1417 
 Änderungen in usb.c bez. Hub.
 Vgl. usb2 spec, Table 11-14. Hub Responses to Standard Device Requests
 
- 
					
					
					
					
 Version 0.0.4.32 - Rev: 1418 
 usb_hub.h/c ergänzt und erste Versuche bez. HubDescriptor in usb.c
 
- 
					
					
					
					
 Version 0.0.4.33: - UHCI: Reagiere auf Geräte, die beim Boot schon angeschlossen sind 
 - Floppy: flpydsk_checkInt vor Calibrate ausgeführt (behebt Timeout auf echter Hardware - Beschleunigung)
 - USB: Fehlerbehebung wieder eingefügt (wurde gelöscht)
 - Linux-bochsrc aktualisiert
 
- 
					
					
					
					
 Mit qemu und folgenden usb-Kommandos -usb -device piix4-usb-uhci -device usb-hub,bus=usb-bus.0,port=1kann man die Detektion und Abfrage des Hub-Descriptors emulieren. Leider beherrscht qemu diesbezüglich nur Hubs mit USB 1.1, aber für die Entwicklung von Descriptoren und Abfragen ist das hilfreich. Bei Hardware gibt es noch Zeitprobleme. 
 
- 
					
					
					
					
 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! 