[RFC PATCH] virtio-usb: Add initial virtio-usb specification
Vasilii Ianikeev <[email protected]> Thu, 11 Jun 2026 15:08:25 +0200
| Newsgroups | dev.linux.lists.virtio-comment |
|---|---|
| Message-ID | <[email protected]> |
This patch introduces the draft virtio-usb device specification, which defines a dual-role USB device capable of operating as a USB host controller, USB device controller, or both roles with dynamic role switching support. A USB device may support one or more ports. Each port can operate as a USB host controller port, USB device controller port, or a dual-role port that allows role switching, depending on the device’s capabilities. The specification includes: - Device ID assignment (49) (already reserved) and feature bits for host, device, and role switching capabilities - Dedicated virtqueue sets for USB host role, USB device role, and OTG role switching operations - Data transfer support for all USB endpoint types (control, interrupt, bulk, and isochronous) - USB host role operations including device connection/disconnection events, URB submission, and bulk stream management - USB device role operations including endpoint management, gadget lifecycle events, and control request handling - USB OTG support for dynamic role switching between host and device modes - Multi-port support allowing devices to expose multiple USB ports with independent role configurations The specification refers to USB 2.0 and USB 3.2 specifications for common terms. For this device, there is a prototypical Linux kernel driver for which upstreaming is planned, and a proprietary device implementation. Any feedback is appreciated very much. Vasilii Ianikeev (1): virtio-usb: Add initial virtio-usb specification conformance.tex | 12 +- content.tex | 1 + device-types/usb/description.tex | 1369 +++++++++++++++++++++++ device-types/usb/device-conformance.tex | 26 + device-types/usb/driver-conformance.tex | 17 + introduction.tex | 6 + 6 files changed, 1427 insertions(+), 4 deletions(-) create mode 100644 device-types/usb/description.tex create mode 100644 device-types/usb/device-conformance.tex create mode 100644 device-types/usb/driver-conformance.tex -- 2.34.1