Sourcecode Fortschritt
-
Version 0.0.4.176:
- Fehlerkorrekturen in USB:
-- Allokiere soviele Endpoints, wie das Gerät hat
-- Größen von Strukturen und Transfers aneinander angepasst/korrigiert
-- Fehlende Nullterminierung eines Strings hinzugefügt
-
Rev: 1563 im Kernel versehentlich alles eine Nummer zu tief!
usb: Fehler behoben Bei Descriptor Device
Experimentell:
xhci: xhci_Set_TR_DeqPointer_Command eingebaut, Endpunkt von Halted(2) über Stopped(3) nach Running(1) bewegt.Details siehe: http://www.c-plusplus.net/forum/p2398877#2398877
-
0.0.4.178 - Rev: 1564
xhci: bulk Transfers laufen ohne babble detect error
z.Z. auf Grund von Zeitproblemen noch mit _XHCI_DIAGNOSIS_
Anmerkung zum xhci_handler: // printf("Interrupt came from another xHCI device!\n"); // TODO: clarify the source of the interrupt!
Geladen via 3:/ttt
PrettyOS [Version 0.0.4.178 - Rev: 1564] Console 0: 3:/ttt.ELF -------------------------------------------------------------------------------- ================================================================================ TicTacToe 3x3 v0.7.0 -------------------------------------------------------------------------------- ------------- | 0 | 1 | 2 | ------------- | 3 | 4 | 5 | ------------- | 6 | 7 | 8 | ------------- ------------- | | | | ------------- | | | | ------------- | | | | ------------- Player X: Please type in a number betwen 0 and 8. -------------------------------------------------------------------------------- Tuesday, May 13, 2014, 19:08:52 94 s runtime. CPU: 3410 MHz \
-
0.0.4.179 - Rev: 1565
xhci: mps und interval werden von usb übernommen, timing durch variation der schalter in os.h etwas eingeengt
usb: interval zusätzlich in endpoints
os.h: XHCI Schalter aufgespaltentest-PC funktioniert bestens!
vmware bindet angedockte sticks über einen hub ein (bisher noch kein erfolg ein programm zu laden)
-
0.0.4.180 - Rev: 1566
Die xhci/usb-Debug-Schalter in os.h können nun alle deaktiviert werden.
Überraschend mussten in xhci_prepareSlotsForBulkTransfers die Zeilen 794-797 und 817-821 verbleiben, warum auch immer (Klärungsbedarf).
-
0.0.4.181 - Rev: 1567
xhci:
Fehler gefunden in xhci_prepareSlotsForBulkTransfers.
Debugs für xhci wieder vereinheitlicht.
-
0.0.4.182 - Rev: 1568
usb_msd.c: Korrektur der Kapazitätsbestimmung mittels read capacity (10)
(Big-Endian bei SCSI)
-
0.0.4.183 - Rev: 1569
xhci:
- Fehler in initHC beseitigt
- weitere Ausgaben hinter DEBUG-Schalter gesetzt, damit ein flüssiger Ablauf stattfindet
- Transfers beschleunigt (Problem: Aussetzer nach dem ersten Event-Interrupt)test-PC: erfolgreiche Ladevorgänge von usb-Sticks (sticks: usb 2.0 oder 2.10)
-
0.0.4.184 - Rev: 1570
xhci: Umgestaltung in xhci_prepareSlotsForControlTransfers (zeitliche Entkopplung der Commands) und im Handler bei STS_EINT (es wird nun kein kurzzeitiger Thread gestartet). Unser Task-System zeigt in vmware offensichtlich ein Problem bei Massen-Kills von tasks (auf dem PC kein Problem). Nun geht vmware und test-PC.
-
0.0.4.185 - Rev: 1571
xhci:
- clear EHB beim Setzen des Event-Dequeue-Pointers,
- im Handler: Event-Interrupts zählenfsmanager: Fehlermeldung entfernen aus fopen (Null-Rückgabe reicht)
vmware: z.B.: event-Interrupts: 33 events: 60
test-PC: event-Interrupts: 1(!) events: > 45 (Rest gepollt)
-
0.0.4.186 - Rev: 1572
xhci: Fehler korrigiert:
- EHB ist Bit3 (nicht Bit0)
- Thread bei event-Interrupt geht nicht wegen freeze bei vmware (kill-Problem in task) ?!Ab und zu kommt es beim Booten mit angehängtem Stick zu freeze beim test-PC (typische Kill-Problematik!). Die Erzeugung/Behandlung der Interrupts sind also noch ein Problem bei xhci.
os.h: bootscreen temporär abgeschaltet (Sound bleibt hängen in vmware bei freeze)
-
0.0.4.187 - Rev: 1573
xhci: logischer Fehler in parseEvents wurde behoben, und issueTransfer vereinfacht. Nun haben wir ein echtes transfer->success.
Nun werden User-Programme auf dem test-PC in Windeseile geladen. Das macht endlich Spaß!
-
0.0.4.188 - Rev: 1574
xhci: Fehlerabfragen für den Transfer erweitert.
-
0.0.4.189 - Rev: 1575
apic.h/c: Kommentierung für Verbesserungen/Fehlersuche/Versuche erweitert
Während Emulatoren unempfindlich sind, reagiert der test-PC massiv auf Änderungen. Zum Beispiel führt in der redirection table Level sensitive anstelle Edge sensitive zum Freeze. Fixed ist wichtig.
-
0.0.4.190 - Rev: 1576
madt.c:strlen
von uninitialisiertem Zeiger gefixt
madt.h: Masks fuer Flags hinzugefuegt
-
0.0.4.191 - Rev: 1577
apic: Fehler behoben in IOAPIC redirection table
-
Version 0.0.4.192:
- IPC unterscheidet nun mehrere Integer-Typen: UINT, INT, QWORD und SIZE
- Überprüft Vorhandensein des IO-APIC vor Benutzung
- FAT12-Formatierung: Floppy-Abhängigkeit beseitigt
- Codevereinfachung in usb_msd.c
-
0.0.4.193 - Rev: 1579
usb_msd: repariert (Blöcke anstelle bytes)
-
0.0.4.194 - Rev: 1580
pci.h/c: PCIdev->irqPin zur info ergänzt
irq.h/interrupts.asm: pic_remap
Vor dem APIC start wird dieser remap ebenfalls durchgeführt.
Bochs arbeitet wieder vernünftig!
-
0.0.4.195 - Rev: 1581
apic: redir tabelle überarbeitet: Unterscheidung zwischen ISA IRQ 1-15 und PCI A,B,C,D und Sonstiges.