Skip to content

[qemu] Earlgrey 1.0.0 usb: emulate SOF and packet scheduling #28730

@pamaury

Description

@pamaury

The driver currently does not emulate start of frame at all, furthermore it greedily schedules OUT packets as the arrived.
The second point is theoretically problematic because under high load, greedy scheduling could lead to the exhaustion of the OUT fifo and the starvation of some endpoint. A better approach would be to have a lightweigth scheduler which schedules OUT packets in a "round robin" fashion to ensure that all endpoints get a chance at making progress. In a future, such a schedule could be enhance to more closely match badnwidth requirements of the USB specification (or the USBDEV protocol could be improved to get scheduling instructions from the host). Ideally, this should be linked to SOF handling so that the scheduling decision happens at every start of frame.

This is a follow-up improvement to #27895

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions