theseus-os / Theseus

Theseus is a modern OS written from scratch in Rust that explores 𝐢𝐧𝐭𝐫𝐚𝐥𝐢𝐧𝐠𝐮𝐚𝐥 𝐝𝐞𝐬𝐢𝐠𝐧: closing the semantic gap between compiler and hardware by maximally leveraging the power of language safety and affine types. Theseus aims to shift OS responsibilities like resource management into the compiler.
https://www.theseus-os.com/
MIT License
2.91k stars 172 forks source link

EHCI USB Controllers Support #1059

Open NathanRoyer opened 1 year ago

NathanRoyer commented 1 year ago

This PR brings early support for EHCI USB controllers. It currently supports directly connected High Speed devices (no hub / low-speed device / full speed device support), and allows:

NB 1: USB Requests work on top of control transfers.

High Level Todos:

NB 2: isochronous transfers are low-priority because they're a legacy concept and they were mainly use for audio, which we don't support in theseus.

Low Level Todos:

kevinaboos commented 11 months ago

Once you merge in the changes from #1081, feel free to mark this as "ready for review" and then request a review from me.

NathanRoyer commented 10 months ago

Ok this is ready for a first review. I just added a command line toggle for USB emulation: usb_hid=yes (default=no).