Tracking issue for XHCI
TODO
-
Support configure endpoint commands through /portX/configure
(!57 (closed)) -
Support alternate interfaces. Right now though, there should be a way to get the currently selected configuration and interface, because configure_endpoints
just discards those parameters when the xHC doesn't support multiple configurations. -
Use correct parameters for all device types (this requires the knowing USB2 speed, as in low-speed, high-speed, and full-speed), particularly in the endpoint contexts. -
Implement transfers, accessible through the API. The API is currently a bit limited though, as it for example only supports up to 64KiB transactions. -
Implement streams. Streams aren't really implemented as of now, because only one stream is used all the time, which kind of eliminates the point of streams. However, since streams are required for superspeed devices, they are needed for proper xHC operation.
-
-
Use IRQs correctly -
For optimal performance, MSI and/or MSI-X
-
-
Add an interface between xhcid
and the class specific drivers. -
Support modifying descriptors properly, which would also require implementing the XHCI Evaluate Context command. -
Support stopping and resetting endpoints -
Support resetting devices
Edited by Jacob Lorentzon