I am currently working on USB controller drivers.
As the USB standards says they are splittet in UHCI 1.0, OHCI 1.1, EHCI 2.0 and XHCI 3.0
VMWare has EHCI and I already have the structures and documentation in a class in cosmos.
For every other class I am looking in the FreeBSD driver repository and Intel documentations.
These HCI ( Host Controller Interface ) classes are then used from the original USB device drivers.
Now I have some general problems with the PCI Device like activating, IRQ, memory mapping, etc.
Does someone have any deeper knowlegde of that?
I think I can get about 90% work done by myself but these problems block.
My plans are:
EHCI: Detect plug in event for devices, look and load a driver for that.
USB: HID driver for mouse or keyboard or both.
Code: Try to port to MOSA
Documentation: Write HOWTO port from Cosmos from/to MOSA.
I know that these drivers will need a major refactoring as compiler and Cosmos framework itself evolve.