Sourcecode Fortschritt
-
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
-
version = "0.0.3.51 - Rev: 1252"
ohci.h/c: defines/comments; ohci_handler vervollstandigt
Anmerkung: EHCI in os.h deaktiviert
-
version = "0.0.3.52 - Rev: 1253"
ohci.c: HC setup überarbeitet entsprechend Kap. 5 der OHCI Spec (rev. 1.0a)
-
version = "0.0.3.53 - Rev: 1254"
ohci.c:
- Übernahme von SMM durch IR bit setzen (nach erfolglosem request) wird angezeigt
- Ports werden gezeigt und untersucht (attached, low/full speed, power)
-
version = "0.0.3.54 - Rev: 1255"
ohci.c: nun wird der Port aktiviert ("enabled"), erfolgt nur beim Anstecken eines Device. Alle PortStatusBits werden ausgewertet/zurückgesetzt(falls notwendig).
-
version = "0.0.3.55 - Rev: 1256"
ohci.h/c: ED, TD
-
version = "0.0.3.56 - Rev: 1257"
ohci.c: Port-Aktivierung im Code vereinfacht (MrX: bitte testen, Start-of-frame muss aktiviert bleiben für die Porterkennung)
usb1.h/c: als frame hinzugefügt (für UHCI und OHCI)TODO: bei EHCI Abgabe an companion HC überprüfen
-
version = "0.0.3.57 - Rev: 1258"
ehci.c: Wechsel zwischen EHCI und Companion HC eingebaut (nun ist UHCI und OHCI ja verfügbar). Es wird z.Z. die "lowest cHC number" verwendet.
(SE0 --> EHCI, K-State --> lowest cHC)
-
version = "0.0.3.58 - Rev: 1259"
siehe: http://www.c-plusplus.net/forum/p2116360#2116360
ehci.c: K- und J-State werden abgegeben. Code als switch/case übersichtlicher.J-State kann z.B. mit einer Fullspeed Gamer-Maus getestet werden.
-
version = "0.0.3.59 - Rev: 1260"
ehci.h/c. kleine Veränderungen
-
version = "0.0.3.60 - Rev: 1261"
ohci.h/c: ED, TD, TDbuffer eingerichtet
-
version = "0.0.3.61 - Rev: 1262"
ehci umgebaut von global auf Struktur ehci_t pro EHCI
-
version = "0.0.3.62 - Rev: 1263"
Auch für _EHCI_DIAGNOSIS_ und _USB2_DIAGNOSIS_ nun fehlerfrei.
Nun kann man in os.h alle HCI gezielt für die Installation in PrettyOS einstellen:
#define _EHCI_ENABLE_ // EHCI will be installed, if this is defined, otherwise not #define _OHCI_ENABLE_ // OHCI will be installed, if this is defined, otherwise not #define _UHCI_ENABLE_ // UHCI will be installed, if this is defined, otherwise not