Sourcecode Fortschritt


  • Mod

    version = "0.0.3.115 - Rev: 1316"

    endlich freeze-free (delay anstelle sleep...)
    sof-check in jetziger Form gestrichen (Programm ist nicht in die while-loop eingetreten). In spec steht: "Perform SOF check" und "Time available?". Diese beiden Punkte werden bisher ignoriert.

    Probleme:
    - Bei EHCI/UHCI- oder EHCI/OHCI-Übergang "prellt" das OS, sodass schnell alle 10 Konsolen (0-9) verbraucht sind.
    - Bei OHCI klappen die IO-Transfers mit 0 byte (handshake) noch nicht (egal ob OUT oder IN)
    - OHCI und PC läuft noch nicht (freeze wegen ständiger interrupts)
    - Emulator VBox (0.4.12) auf Host Win XP bei USB völlig unzuverlässig (ehenkes)


  • Mod

    version = "0.0.3.116 - Rev: 1317"

    ohci: wieder testbar mit VBox

    if (val & OHCI_INT_RHSC) // root hub status change
    {
       // printf("Root hub status change.");
       handledInterrupts |= OHCI_INT_RHSC;
       // scheduler_insertTask(create_cthread(&ohci_portCheck, "OHCI Ports"));   
       ohci_portCheck();   
    }
    

  • Mod

    version = "0.0.3.117 - Rev: 1318"

    void ohci_portCheck(ohci_t* o)

    Problem: bei dem test-PC: dauerinterrupt root hub change bei ohci 0, port 3

    (EHCI nicht enabled, s. os.h)


  • Mod

    version = "0.0.3.118 - Rev: 1319"

    ohci.c: ohne enumeration (set address), also mit 0, läuft der ohci die control transfers durch.

    SET ADDRESS läuft anders als andere control transfers. Nummerierung wird erst nach erfolgreichem Transfer ausgeführt.


  • Mod

    version = "0.0.3.119 - Rev: 1320"

    ohci.c: issueTransfer überarbeitet, sodass man die Wartezeiten nach transaction und transfer getrennt einstellen kann.

    Der letzte TD wird momentan nicht ausgeführt, weil er der letzte ist! (einfach einen dummy handshake dahinter setzen)


  • Mod

    version = "0.0.3.120 - Rev: 1321"

    ohci.c: Durch Anhängen eines Dummy-TD in ohci_issueTransfer und check der conditions nach Ende des Transfers klappt nun auch set_address (Enumeration).

    Meilenstein: Die USB 1.1 control-Transfers (mit ohci) laufen auf VBox! 🙂 👍

    screenshot: http://www.henkessoft.de/OS_Dev/Bilder/rev.1321_OHCI_USB.PNG


  • Mod

    version = "0.0.3.121 - Rev: 1322"

    usb2_msd.c:
    curEHCI bzw. showUSBSTS(e) in diesem Modul eliminiert, um es auch für ohci- und uhci-bulk-Transfers benutzen zu können.


  • Mod

    version = "0.0.3.122 - Rev: 1323"

    ohci.c: bulk transfers laufen test-weise (tranfer/transaction system funktioniert auch dort)


  • Mod

    version = "0.0.3.123 - Rev: 1324"

    ohci.c: recycling der bulk-ED/TD Ressourcen

    Nun kann man ttt mittels usb 1.1 mit ohci laden! 😉


  • Mod

    version = "0.0.3.124 - Rev: 1325"

    ohci.c:
    - recycling der control-ED/TD
    - "disk" und "usb-device" entfernen beim Entfernen einer USB Mass Storage Device vom Port (usb slot) <--- funktioniert noch nicht, da zur Zeit nur connected behandelt wird


  • Mod

    version = "0.0.3.125 - Rev: 1326"

    ohci.h/c: "device removed" wird nun wieder angezeigt (aber nur bei Ports, bei denen vorher ein connect war) und die Disk-Liste aktualisiert.


  • Mod

    version = "0.0.3.126 - Rev: 1327"

    list.h/c: Zahl der Elemente kann nun erfragt werden (Test in ohci.c)


  • Mod

    version = "0.0.3.127 - Rev: 1328"

    Formale Änderungen



  • Version 0.0.3.128:

    - IPC verbessert:
    -- Funktional nun fast vollständig
    -- Strg+i zeigt Inhalt der IPC an
    -- IPC-Syscalls implementiert
    - EHCI AsyncScheduler verbessert. Kein Start-Stop mehr. (-> Deutlich beschleunigt, aber nicht 100% zuverlässig)
    - Codestil und kleinere Optimierungen



  • Version 0.0.3.129:

    - IN-Transfer von SCSI-Commands werden bei Fehlschlag nicht mehr wiederholt (-> führte zu Freeze)
    - EHCI-AsyncScheduler prüft nun, ob das Active-Bit jeder qTD gelöscht wurde (-> wesentliche Beschleunigung)


  • Mod

    version = "0.0.3.130 - Rev: 1331"

    ohci.c: bei Transfer-Ausführung code vereinfacht und stop-Vorgänge zwischen transactions gestrichen

    ehci.c: reset-Wartezeit von 250 ms auf 100 ms verkürzt (OpenBSD nimmt 100 ms).


  • Mod

    version = "0.0.3.131 - Rev: 1332"

    ehci.c: Code klarer formuliert
    usb2_msd.c: Fehler bei Paketgröße (control transfers) berichtigt

    EHCI-Tests auf PC: Vorgänge verlaufen sehr schnell, leider funktionieren Memory-Sticks der Marke Intenso Rainbowline (4GB) z.Z. nicht (allerdings problemlos mit VMWare Player), Grund leider unklar.



  • Version 0.0.3.132:

    - EHCI-Funktionen gemäß Styleguide benannt
    - Start of Frame Interrupt bei OHCI deaktiviert
    - Kein Broken Free mehr bei OHCI (EDs dürfen nicht gelöscht werden, da sie in einem Mempool sind)
    - _BROKENFREE_DIAGNOSIS_ implementiert: Wenn definiert, werden Datei und Zeilennummern des dazugehörenden free-Aufrufs angezeigt
    - Code vereinfacht


  • Mod

    version = "0.0.3.133 - Rev: 1334"

    ohci.h/c: Structs/Funktionen/Parameter korrekt auf das bei ohci übliche ED/TD umbenannt. Debug-Ausgaben stark reduziert.


  • Mod

    version = "0.0.3.134 - Rev: 1335"

    uhci.c: Fehler bei usb-attach-Erkennung repariert, usb-Transfer/Transaction-frame als Interface für das usb-Modul aufgebaut. TODO: Mit Leben füllen

    pcnet.c: Versuchsweise auf full-duplex geschaltet, um collision error in VBox zu vermeiden (klappt nicht)


Anmelden zum Antworten