Sourcecode Fortschritt
-
version = "0.0.3.32 - Rev: 1233"
uhci.c: Ausgaben verbessert
-
Version 0.0.3.33:
- Zusammenspiel von IRQs, PCI, Netzwerkadaptern und HCIs verbessert
- Übler Bug im UHCI-Handler beseitigt - Dieser ist nun nichtmehr tot
- IRQ-Filter im Netzwerkcode verbessert
- todolist aus UHCI entfernt
-
version = "0.0.3.34 - Rev: 1235"
uhci.c: showPortState(uhci_t* u, uint8_t j)
-
version = "0.0.3.35 - Rev: 1236"
uhci.h/c: Fehler beseitigt, code umgestellt
qemu: läuft (invalid interrupts)
vmware: halted
test-pc 1: halted / process error
test-pc 2: läuft// set PIRQ or zero (???) pci_config_write_word(bus, dev, func, UHCI_PCI_LEGACY_SUPPORT, 0 /*UHCI_PCI_LEGACY_SUPPORT_PIRQ*/);
Mit 0 läuft es auf VMWare besser, richtig ist aber UHCI_PCI_LEGACY_SUPPORT_PIRQ.
USB PIRQ Enable (USBPIRQDEN) R/W. 1 (default) = USB interrupt is routed to PIRQD. 0 = USB interrupt does not route to PIRQD. This bit prevents the USB controller from generating an interrupt. Note that it will probably be configured to generate an SMI using bit 4 of this register. Default to 1 for compatibility with older USB software.
-
version = "0.0.3.36 - Rev: 1237"
uhci.c: 0x2000 in LEGSUP und nur einen QH der horizontal/vertikal das T-Bit (inaktiv) geschaltet hat, keine TDs.
Test-PC 1 (1400 MHz): erkennt angesteckte usb-sticks (high-speed) als fullspeed:
- fullspeed device
- device changed (CSC)
- device attached (CS)
- line state: D+screenshot: http://www.henkessoft.de/OS_Dev/Bilder/rev.1236_uhci.PNG
Das ist eine Basis.
-
version = "0.0.3.37 - Rev: 1238"
uhci.c: invalid interrupts gefiltert
-
version = "0.0.3.38 - Rev: 1239"
uhci.h/c: Fehler behoben bezüglich BIT_T und BIT_Q, Ausgaben verbessert (z.B. RS bit zur Sicherheit)
Tests: qemu und Test-PC 1 laufen gut, vmware und Test-PC 2 halted und process error
TODO: Fehlerstelle finden durch debuggen mittels vmware
Wichtig: die Interrupts kommen manchmal doppelt/dreifach für den gleichen UHCI! EDIT: lag am mehrfachen Setzen des RS-Bits, also völlig korrekt!
-
version = "0.0.3.39 - Rev: 1240"
uhci.c:
- Fehler korrigiert:u->framelistAddrVirt->frPtr[i] = paging_getPhysAddr(qhIn) | BIT_QH;
( Vorher & anstelle | )
Nun laufen alle! MrX: bitte Hardware (alle 3 PCs) testen.
Damit sind nur Test-PC 2 und VMWare als "echte Tester" geeignet.
VMWare war auch bereits bei EHCI die ideale Emulation.
-
version = "0.0.3.40 - Rev: 1241"
uhci.c: experimentelle Variante für eigene qh/td-Versuche
siehe uhci.c, zeile 14, #define UHCI_SCENARIO // qh/td experimentswenn's stört: uhci.c, zeile 14, #define UHCI_SCENARIO wegnehmen (qemu bockt mit HC Process Error)
-
Version 0.0.3.41:
- IO/MMIO-Bit im PCI-Commandregister bei allen Gerätetreibern korrekt gesetzt
- PCNet-Handler gefixt, Interrupt-Filter geht nun
- Codestil (im Zusammenhang mit PCI)
- Optimierungen am Bootloader
-
version = "0.0.3.42 - Rev: 1243"
ohci.h/c: erster Rahmen analog uhci.h/c eingefügt (ohci verwendet MMIO)
-
Version 0.0.3.43:
- UHCI/OHCI-Funktionsnamen aufgeräumt
- Portscan-Mechanismus im Devicemanager, implementiert für UHCI
- Ausgabe verbessert
-
version = "0.0.3.44 - Rev: 1245"
OHCI Operational Registers implementiert (Open Host Controller Interface Specification for USB 1.0a, Kap. 7; S. 108)
Als Test fragen wir in der PCI-Device-List die HCI Revision und die Number Downstream Ports ab. Klappt alles bestens.Wer keinen PC mit OHCI hat, verwendet VBox.
-
qemu kann übrigens auch OHCI, -device pci-ohci ist die richtige Option dafür.
-
version = "0.0.3.45 - Rev: 1246"
ohci.c: HC Reset begonnen
@taljeth: Danke für den Hinweis!
2*UHCI und 2*OHCI:
-usb -device piix4-usb-uhci -device pci-ohci -device pci-ohci
-
Version 0.0.3.46:
- EHCI-Code aufgeräumt
- Bugfix in ftp, kein #PF mehr beim Verbinden
- A20-Code im BL2 verbessert
-
version = "0.0.3.47 - Rev: 1248"
ohci.c: handler ausgebaut, um Interrupts zu zeigen und zurück zu setzen (kommt bei einem Test-PC). Hilft bei einem PC aber nichts, kommt massiv Port Status Changed.
Zeit für Übernahme von SMM wurde erweitert.
-
version = "0.0.3.48 - Rev: 1249"
ohci.c: handler leicht verbessert
Test mit VBox:
- usb2.0 deaktivieren in VBox
- PrettyOS starten (ohne Stick im Port)
- Stick in Port einstecken
---> Interrupt: "Root hub status change." kommt einmal
-
version = "0.0.3.49 - Rev: 1250"
ohci.c: HCCA eingebunden, Interrupts enabled (SF - start of frame - wurde deaktiviert wegen Dauerbeschuss in qemu)
Ideal: Test der ohci OpRegs im VBox debugger (Tipp von MrX)
-
version = "0.0.3.50 - Rev: 1251"
ohci.h/c, ehci.h/c, ... Formelle Verbesserungen