I have a question about the emulation of streams and UASP with the two xhci controller options QEMU supports: qemu-xhci and nec-usb-xhci
It is my understanding that the UASP code checks to see if streams are supported by simply checking if the device is a Super Speed Device? https://gitlab.com/qemu-project/qemu/-/blob/master/hw/usb/dev-uas.c#L338 static bool uas_using_streams(UASDevice *uas) { return uas->dev.speed == USB_SPEED_SUPER; } The "qemu-xhci" xHC option supports streams, however the "nec-usb-xhci" xHC option does not. xHC:HCCPARAMS1: Bits 15:12 = 7 on the former and 0 on the latter. Also, the above code assumes the device attached supports streams. My question is, does QEMU's current implementation of UASP assume that streams are supported by the xHCI xHC? If so, UASP won't work with the "nec-usb-xhci" xHC option. Also, if the Guest OS doesn't support streams on a xHC that does--by this OS setting the correct values in the xHCI EndPoint's Context ( MaxPStreams = 0, LSA = 0, HID = 1, etc. )--a correct emulation should still work without streams, correct? Is the above information a correct assumption on the current UASP emulation, or have I missed something all-together? Anyway, I thank all of you who have put in so much time and effort into this emulator. It is much appreciated. Ben