Sourcecode Fortschritt


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


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


Anmelden zum Antworten