Sourcecode Fortschritt



  • Version 0.0.5.7:

    - HID: Interface-Protokoll angezeigt (Maus, Tastatur)
    - HID-Code aufgeräumt
    - Bugfix: Debug-Print in usb_msd korrigiert

    Hinweis: Version/Revision versehentlich nicht hochgezählt.



  • Version 0.0.5.8:

    - Devicemanager: Blockweises Schreiben implementiert (massive Beschleunigung aller Schreibvorgänge)
    - USB-HID: Bessere Unterstützung von Multifunktionsgeräten, Ausgabe verbessert
    - Devicemanager: Einige Funktionen umbenannt
    - Schreibe "Take screeenshot" erst, nachdem der Screenshot geschossen wurde
    - Bugfix: Use-after-free in move()-Funktion behoben



  • Version 0.0.5.9:

    - OHCI: Treiber grundlegend überarbeitet: Diverse Fehler und Abweichungen von Spezifikation korrigiert
    - xHCI: Warte auf Interrupt anstatt feste Zeitspanne, überflüssiges evaluate context bei GET_DESCRIPTOR_CONFIG entfernt
    - diverse HC-Treiber: Fordere Interrupts nur wo nötig
    - pong: Code überarbeitet und deutlich gekürzt (> 400 Zeilen), einige kleine Fehler behoben
    - pqeq: Ausgabe verbessert



  • Version 0.0.5.10:

    - USB: Verbesserter Umgang mit MPS und Endpoints
    - xHCI: MSD-Hacks entfernt, Mechanismus zum Aktualisieren der Endpoint-Informationen



  • Version 0.0.5.11:

    - xHCI: Warten auf Abschluss eines Cmds implementiert
    - USB-Hub: Einige waitForKeyStroke() entfernt
    - HC-Treiber: unnützer Parameter tokenBytes bei setupTransaction entfernt
    - Bugfix: vsnprintf konnte bei %X/%x/%y über Puffergrenze schreiben
    - Speicherlecks in Shell und fsmanager behoben


  • Mod

    0.0.5.12 - Rev: 1678

    usb.c: UFI (interface->interfaceSubclass == 0x04) wird abgefangen und angezeigt.

    test-PC: uhci - fullspeed (usb-Floppy) klappt also am ehci-port nach Abgabe an uhci


  • Mod

    0.0.5.13 - Rev: 1679

    xhci.c: nun wird speed-ID und mps aus PORTSC angepasst für low-/full-/highspeed Devices (Maus/Tastatur, usb-Floppy, Stick)


  • Mod

    0.0.5.14 - Rev: 1680

    usb/usb_msd: Grundlagen gelegt für Mass Storage Device UFI/CBI (z.B. fullspeed usb-Floppy)

    Tests mit VBox (ohci) liefern bereits korrekte Daten der Floppy. Das Device wird nicht vollständig als Disk eingebunden, sodass man noch nicht auf den Inhalt zugreifen kann. Partition, Name, Serial fehlen.


  • Mod

    0.0.5.15 - Rev: 1681

    UFI MSD etwas weiter entwickelt.


  • Mod

    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


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


Anmelden zum Antworten