Sourcecode Fortschritt
-
0.0.4.172 - Rev: 1558
xhci: event debugging für commands verbessert
Das Event liefert die phys. Adresse des Commands. Via paging_getVirtAddr greifen wir auf den TRB-Typ des Commands zu. Damit lässt sich Event und Command besser zuordnen und auswerten.
Damit paging_getVirtAddr funktioniert, wurde lookForVirtAddr korrigiert: i >= start
-
0.0.4.173 - Rev: 1559
xhci:
- Event-Anzeige ohne eigene Konsole (Vereinfachung des Ablaufs)
- Event-Anzeige nur bei Error
-
0.0.4.174 - Rev: 1560
xhci: Verschieben von Zeigern von der xHC- zu den Endpoints-Structs.
typedef struct { //... // transfer ring xhci_xfer_NormalTRB_t* virtEnqTransferRingPtr; xhci_xfer_NormalTRB_t* virtDeqTransferRingPtr; xhci_xfer_NormalTRB_t* TransferRingbase; bool TransferRingProducerCycleState; // PCS uint32_t TransferCounter; } xhci_endpoint_t;
Nun sollte auch bei mehreren Sticks jeder Endpoint seinen eigenen Transferring haben. Die Interrupts werden immer noch alle nach Interrupter 0 geschickt.
-
0.0.4.175 - Rev: 1561
xhci: Erste Reaktion in parseEvent auf Babble Detect
Übergang von Halted zu Stopped gelingt bereits.
-
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