Sourcecode Fortschritt


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


  • Mod

    version = "0.0.3.135 - Rev: 1336"

    uhci.h/c: Weiter implementiert



  • Version 0.0.3.136:

    - Bugfix: Shell stürzt nicht mehr ab, wenn man den Schreibcursor nach links bewegt
    - Bugfix: Kein #GPF mehr, wenn ein USB-Stick schon beim boot steckt (EHCI)
    - Einige fehlende E0-Tasten ergänzt - Entf, Pos1, End, ...-Tasten funktionieren wieder (u.a. von der Shell unterstützt)
    - Timer-Ticks jetzt als uint64_t gespeichert (Rechnungen weiterhin mit uint32_t, da keine 64-bit-Unterstützung)
    - video_updateCursor in vga_updateCursor umbenannt. Einsatz überarbeitet.


  • Mod

    version = "0.0.3.137 - Rev: 1338"

    uhci.c: transfer/transactions/QH- u. TD-Funktionen eingerichtet (Transfers klappen noch nicht)


  • Mod

    version = "0.0.3.138 - Rev: 1339"

    uhci.c: Fehler beseitigt (Transfers laufen noch nicht korrekt)


  • Mod

    version = "0.0.3.139 - Rev: 1340"

    uhci.c: weiter gecheckt, aber Transfers laufen noch nicht. 🙄


  • Mod

    version = "0.0.3.140 - Rev: 1341"

    uhci.c: Verkettung und Vf, QH, T sollte nun stimmen nach debugging.

    Aufgabe: TDs werden noch nicht abgearbeitet (active bit).


  • Mod

    version = "0.0.3.141 - Rev: 1342"

    uhci.c: Port Reset nach attach, alle 1024 Frames auf QH
    Debugging zeigt korrekte Verknüpfung, Transfers laufen trotzdem noch nicht (wie wenn device nicht vorhanden; evtl. noch nicht korrekt konfiguriert nach attach)


  • Mod

    version = "0.0.3.142 - Rev: 1343"

    uhci.h/c: Erste erfolgreiche uhci usb 1.1 Transfers erfolgen, nun kann die Optimierung beginnen. 🙂



  • Version 0.0.3.143:

    - Einige Memory-Leaks im Videomanager und VBE beseitigt
    - Kleinere Optimierungen im Paging-Modul
    - TransferFlag bei UHCI, OHCI und EHCI eliminiert (redundant durch andere Flags, inkonsequente Nutzung)
    - UHCI kompiliert nun auch ohne _UHCI_DIAGNOSIS_



  • Version 0.0.3.144:

    - Bugfix: Backspace funktioniert wieder (Daten wurden nicht in Videospeicher durchgeschrieben)
    - Bugfix: Kein #PF mehr in IPC (folder-Inhalt war nicht initialisiert)
    - IPC in Betrieb genommen - system_t-Struktur entfernt
    - Callstack automatisch angezeigt bei Fehlern


  • Mod

    version = "0.0.3.145 - Rev: 1346"

    uhci.c: Transfers laufen bei einem Stick bis read capacity komplett fehlerfrei durch. Fehler (babble) tauchen bei singleSectorRead(0, buffer, disk) auf.

    Screenshot: http://www.henkessoft.de/OS_Dev/Bilder/rev.1346_UHCI_USB.PNG

    Babble:

    When a device transmits on the USB for a time greater than its assigned Max Length, it is said to be babbling. Since isochrony can be destroyed by a babbling device, this error results in the Active bit in the TD being cleared to 0 and the Stalled and Babble bits being set to one. The C_Err field is not decremented for a babble. The USB Error Interrupt bit in the HC Status register is set to 1 at the end of the frame. A hardware interrupt is signaled to the system. If an EOF babble was caused by the host controller (due to incorrect schedule for instance), the host controller will force a bit stuff error followed by an EOP and the start of the next frame.

    USB COMMAND REGISTER - Bit 7:

    Max Packet (MAXP). 1=64 bytes. 0=32 bytes. This bit selects the maximum packet size that can be used for full speed bandwidth reclamation at the end of a frame. This value is used by the Host Controller to determine whether it should initiate another transaction based on the time remaining in the SOF counter. Use of reclamation packets larger than the programmed size will cause a Babble error if executed during the critical window at frame end. The Babble error results in the offending endpoint being stalled. Software is responsible for ensuring that any packet which could be executed under bandwidth reclamation be within this size limit.

    Wir wollen hier 512 Byte übertragen (bei ohci geht es in irgendeiner Form problemlos).

    Die Stichworte sind: Babble und Stall

    Auf einem anderen PC mit UHCI wurden analoge Resultate erzielt, also repräsentativ.


Anmelden zum Antworten