So here’s my status update. I am attaching a PATCH to the first ticket 13343 that you reference, but I didn’t actually work in QEMU. Actually, it may impact all those tickets. I’ve been looking at the code trying to find bugs in general.
I’ve been investigating the xhci (usb3) driver and found a few things.
All of my hardware that I have access to happens to have the NEC/Renesas chipset. Previously,
none of the hardware was even recognized, and it would fail at getting the device descriptors.
With the patch that I have submitted and attached, things are starting to work, and the attached
devices are reported, and even working.
What I’ve found though, is that early rev. chips, 0.96 seem to have an issue and interrupts seem
to stop being generated. I believe it is related to an errata for missing interrupts on partial
transfers. I haven’t been able to come up with a solution yet.
Now the same chipsets that are later revisons work much better for me. I was able to mount
drives, watch videos, and even boot from a USB3 port. Although, sometimes it was tough to even
get the bios to recognize the thumbdrive attached. I don’t believe it’s stable yet though.
Back to the early rev. chipsets, it may be a regression in system performance until a solution is found.
If a device is connected to the xhci port, and you right click in Tracker to ‘Mount’ it takes some
time to respond while the system tries to query the device, but receives no response. And I did get an occasional KDL on boot, so I think there is still a memory allocation or access issue.
I’m not sure how the project wants to proceed with the patch, but I wanted to get it out there and
hopefully some others can help debugging. I am still working on it, but maybe those with more
USB knowledge will have some ideas.