Sourcecode Fortschritt


  • Mod

    0.0.4.230 - Rev: 1616

    fat.c: format für FAT32 versuchsweise implementiert. 😉


  • Mod

    0.0.4.231 - Rev: 1617

    fat.c: Erstellungsdatum ergänzt (bisher war dort nur die Zeit)



  • Version 0.0.4.232:

    - Mutex um Disk-Cache gesetzt, Algorithmus vereinfacht
    - Tasking-Korrekturen:
    -- Stacksegment des kernelTask auf 0x10 gesetzt (testweise - sollte wohl für alle Ring-0-Tasks der Fall sein, also auch für den kernelTask)
    -- Unbenutzte Member von task_t beseitigt
    - Einige Fehlerabfragen verbessert:
    -- Kein Absturz mehr von format bei unbekannter Partition
    -- "1:0" (u.ä.) wird nicht mehr als valide Partitionsangabe akzeptiert
    -- Kein Pufferüberlauf bei Partitionsnummern größer/gleich 4
    - Vergessene Debugausgaben aus IPC entfernt



  • Version 0.0.4.233:

    - CMOS-Funktionen, COM-Ports und paging_acquirePciMemory mit mutex geschützt
    - Scheduler-Stabilisierungsversuch:
    -- Potentielle Race-Conditions beseitigt
    -- Benutzung von task_switching und cli/sti verbessert
    - Ausgabe beim Boot etwas aufgeräumt
    - Treiber für serielle Schnittstelle überarbeitet - atomare Funktionen extrahiert
    - Präprozessorweichen in userlib_cpp korrigiert


  • Mod

    0.0.4.234 - Rev: 1620

    TEST: count int/sec (Anzeige in dritter Infozeile)

    Idee: Mehr interne Infos über das OS zeigen, um Fehler besser aufzuspüren.


  • Mod

    0.0.4.235 - Rev: 1621

    interrupts/sec aufgeschlüsselt (alle, syscall, timer, switch)

    *test-PC (3,4 GHz, dual core): ca. 608000 syscalls/sec (bei 250 Hz)
    *


  • Mod

    0.0.4.236 - Rev: 1622

    Nun klappt das Kompilieren mit und ohne #define _SERIAL_LOG_


  • Mod

    0.0.4.237 - Rev: 1623

    Damit bochs wieder mitspielt:

    1. cli(); und sti(); in scheduler.c, unblockTask() entfernt (wegen #GP bei bochs) (Fund von MrX)
    2. mit GCC kompilieren (bei clang erfolgt keine Ausführung der Eingaben)

    ==> bochs läuft (ca. 200 syscalls/sec) 🙂


  • Mod

    0.0.4.238 - Rev: 1624

    ehci.c:
    e->OpRegs->USBSTS = 0x00000000; is not useful!
    Hence, we set it to: 0000 0000 0000 0000 0001 0000 0011 1111 = 0x0000103F


  • Mod

    0.0.4.239 - Rev: 1625

    Beseitigung überflüssiger Zeilen in fat.c (Fund von MrX mittels cppcheck)



  • Version 0.0.4.240:
    - Unzählige Clang (-Weverything)- und Cppcheck-Warnungen behoben
    - Kein "Press key for exit!" bei Kernel-Absturz
    - Caches invalidiert beim Entfernen einer Disk



  • Version 0.0.4.241:

    - Pufferüberlauf in FAT_FormatFileName behoben -> Clang-Hack in fsmanager.c entfernt
    - Pufferüberläufe beim Zugriff auf partition_t::serial behoben, serial ist nun Integer, Partitionsname in separatem Feld partition_t::name gespeichert, disk_t::name entfernt
    - irq_uninstallHandler implementiert
    - Einstellungen in PCNet-Treiber überarbeitet (non-promiscuous-Modus, automatische Aushandlung Full-/Halbduplex, etc.)
    - HACKs in video.h verbessert und in fat.c und pcnet.c behoben



  • Version 0.0.4.242:

    - Treiber für RTL8168/8169 weiterentwickelt:
    -> Initialisierung, Senden und Empfangen funktionieren weitgehend, aber keine Interrupts



  • Version 0.0.4.243:

    - xHCI/EHCI: Speicherverwaltungsfehler behoben - allokiere soviel Speicher wie nötig anstatt immer eine page
    - xHCI: Timeout in HC-Halted-Warteschleife eingebaut
    - RTL8186/RTL8139: PCI_CMD_FASTBACKTOBACKENABLE aktiviert; RTL8168: PCI_CMD_MEMORYWRITEINVALIDATEENABLE aktiviert
    - RTL8168: Aktiviere Transmitter, bevor TxConfig geschrieben wird


  • Mod

    0.0.4.244 - Rev: 1630

    e->bar oder x->bar = (uintptr_t)paging_acquirePciMemory(bar_phys, alignUp(bar_size, PAGESIZE)/PAGESIZE) + (bar_phys % PAGESIZE);

    ehci läuft wieder, xhci bleibt bei der port-behandlung stecken (port check, detect device war alles auskommentiert?!).


  • Mod

    0.0.4.245 - Rev: 1631

    xhci.c: detect Device wieder aktiviert (war auskommentiert).

    Test-PC: Stick wird erkannt und Programm kann gestartet werden!

    bochs: läuft
    vmware: 3 x timeout beim Erkennen (xhci) und freeze.
    qemu 2.0 oder 2.1 stürzt wegen xhci ab.



  • Version 0.0.4.246:

    - OHCI: Timeouts und Wartezeiten an Spezifikationswerte angepasst, keine bis zu 10 Sek. Wartezeit mehr
    - OHCI: Zahlreiche Ausgaben hinter _OHCI_DIAGNOSIS_ versteckt
    - PCI/xHCI: Auslesen der PCI-Capabilities nach pci.c verschoben
    - Bugfix: Loslassen der STRG-Taste bei Strg+I wird nun erkannt



  • Version 0.0.4.247:

    - switch_context erzwingt Task-Wechsel nur noch auf Wunsch - Einsparung von 250 Interrupts pro Sekunde im Idle-Zustand
    - Netzwerktreiber deaktivierbar (_NETWORK_ENABLE_)
    - FS_ERROR-enum zwischen Kernel und Usertools synchronisiert
    - Paketlänge auf Pufferlänge begrenzt in allen Netzwerkkartentreibern
    - Bugfix: RTL8168 Tx/RxBuffers korrekt verwendet
    - Bugfix: RTL8168/RTL8139 nehmen nun erste statt letzte MMIO-BAR, falls mehrere verfügbar sind
    - Bugfix: Entry size in memory map sollte 20 sein (führte zu ASSERTION beim Start mit GRUB)



  • Version 0.0.4.248:

    - xHCI: Alignments auf von Spezifikation geforderte Werte reduziert
    - PCI/xHCI: MSI-Konfiguration nach pci.c verschoben, 32-Bit-Adressierung implementiert
    - RTL8169: Nutze MSI, wenn verfügbar
    - Überflüssige "volatile"-Schlüsselwörter entfernt, überflüssige Bitfelder durch normale Variablen ersetzt
    - acpi/matd.c: strcpy-Nutzung reduziert und malloc()-Nutzung entfernt
    - xHCI: Kommentare schöner formatiert
    - Bochs-Script an Bochs 2.6.7 angepasst



  • Version 0.0.4.249:

    - *HCI: HC-Treiber implementiert heraussuchen der passenden BAR (keine Verwechselung von IO- und MMIO-Adressen, wenn der HC beides anbietet, keine mehrfache Erkennung eines einzelnen HCs)
    - xHCI: Auslesen der Extended Capabilities richtig implementiert (Stehen im MMIO-Bereich, nicht in PCI-Registern, anders als bei EHCI)
    - Diagnose-Flag _HCI_DIAGNOSIS_ entfernt (überflüssig)
    - Bugfix: Pufferüberlauf in fat.c (Danke, Mechanics!)
    - Bugfix: Kein Zeilenumbruch in Konsolenname bei xHCI

    Damit friert mein Testrechner sowohl bei OHCI als auch bei xHCI nicht mehr bei der Initialisierung ein -> xHCI ist dort jetzt benutzbar.


Anmelden zum Antworten