Sourcecode Fortschritt


  • Mod

    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


  • Mod

    0.0.5.20 - Rev: 1686

    uhci debug-code verbessert, usb-Funktionen für weitere notwendige Experimente angezeigt.


  • Mod

    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


  • Mod

    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?)


  • Mod

    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.


  • Mod

    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).


  • Mod

    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.


  • Mod

    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


  • Mod

    0.0.5.30 - Rev: 1696

    ehci: structs/functions for periodic list (for interrupt transfers and isochronous transfers) started


  • Mod

    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


  • Mod

    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


  • Mod

    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 eingestellt

    TODO: 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)


  • Mod

    0.0.5.36 - Rev: 1702

    Neu eingeführt: usb video class (usb_video.h/c)


  • Mod

    0.0.5.37 - Rev: 1703

    usb_video.h/c weiter ausgebaut, Auslesen des configuration-descriptors bez.Video class details erweitert

    Bsp. webcam: http://codepad.org/dxW5cYMX


Anmelden zum Antworten