Skip to content

[qemu] Earlgrey 1.0.0 usb implementation #27895

@moidx

Description

@moidx

Description

Proposed implementation

lowRISC proposes implementing the USB IP block using USB/IP.

USB/IP is a protocol designed to share USB devices across computers by encapsulating USB protocol messages into TCP/IP payloads and transmitting them over the network. In this architecture, a client that wishes to use a USB device connects to a server that exposes one or more USB devices. In our case, the client would be the workstation running QEMU and the server would be QEMU. A QEMU device would implement the server side of the USB/IP protocol and interact with the guest system to emulate the OT USB IP block.

  • The OT QEMU USB device would need to translate the high-level USB transactions into the corresponding packets that the real OT USB would handle.
  • The QEMU USB device would also emulate the corresponding IP block behaviours such as the FIFO usage, generating interrupt signals, and updating various other register values, all based on the high-level transactions being emulated.

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions