Sourcecode Fortschritt
-
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.
-
0.0.4.196 - Rev: 1582
pci: PIN #A bis #D erfasst bei PCI-to-(E)ISA bridge
apic: PIN #A bis #D in redir table nach 16-19
ckernel: umgebaut, damit pci_scan vor apic_install erfolgt (beide nach syscall_install)
-
0.0.4.197 - Rev: 1583
apic: kleine Änderungen
pic: disable etwas ergänzt
-
0.0.4.198 - Rev: 1584
pci/apic: PCI Lines E-H ergänzt für ICH7 etc. <== es gibt sie also doch!
test-PC (mit ICH7): ehci erkennt eingesteckten highspeed stick!
Vbox: mit ICH9 funktioniert es noch nicht (E-H zeigt 128 = default, wird also nicht verwendet)Datenblatt ICH7/9:
60h–63h PIRQ[n]_ROUT PIRQ[A–D] Routing Control 80808080h R/W
68h–6Bh PIRQ[n]_ROUT PIRQ[E–H] Routing Control 80808080h R/WR/W klingt besonders interessant.
Damit könnte man nämlich endlich mal Interrupts auseinander sortieren.