Hi all,
I have been working on the Bochs USB emulation lately and have made quite a bit of progress.
First, the USB Debugger is in its initial, experimental, first stages and a Pull Request for this initial start has been submitted. Currently, it will allow you to pause the emulation and view the xHCI controller and command/event rings.
Preliminary documentation can be found here. Note that it is still in its experimental stages and I will continue to add to it.
I also have been testing the device emulation for USB Compliance and found a few bugs and missed items. For example, while testing the external Hub compliance, I found that the OHCI's toggle bit emulation was not correct. A fix has since been committed to the source tree. If you have been working on your OHCI, please make sure and use the latest source.
I have tested and therefore added to the device emulation to make all devices (mostly) pass the USB compliance tests. Please see
https://www.fysnet.net/bochs/images/supported.htm. (Note that this URL may change. I will try to update this post if it does) The Hub emulation now passes the per-port compliance tests, though it does not pass the Global tests due to the fact that this requires the Host Controllers to have Suspend/Resume triggering, which is not fully implemented yet.
Other than the Disk/CD-ROM super-speed emulation, all devices pass the USB compliance test suites, though note that the test is an old version and ran on a WinXP guest. The new version of the compliance test is ran on a Win10 guest, and I have yet to get the test to load a device correctly. Hence the super-speed test shows that it is still to be done. If and when I get the new test to perform on a Win10 Guest, I will then update that page to these new results. The issue here is that WinXP takes a few seconds to boot, while Win10 takes considerably longer. Hence, the ease of testing on WinXP compared to the Win10 Guest. :-)
This new device emulation which passes these tests has not had a Pull Request created yet, since I am still doing last minute tests. I hope to have a PR posted soon.
Oh, and if any of you can personally verify that a Guest not listed on the 'supported' page I noted above, supports a listed device, please let me know. I am more interested in just the opposite, a device that is not supported on a Guest when it actually should be, but either way, please let me know via a reply here, a Message via this forum, or an email (address found at URL listed below). Please note that if you send me a verification, I will include your contact information (somewhat obscured from bots) so that when something changes, you can be contacted again to re-verify. So please be accurate even if it is a junk gmail account, though a valid contact is desired. Also, I will only list somewhat known Guests, like *nix variants, etc. I know the desire to post your own, believe me, but I am looking for known, commonly used (somewhat commercially used) Guests here. Thank you.
Thanks again for everyone here, for all the comments and support. It is an enjoyable hobby.
Ben
-
https://www.fysnet.net/the_universal_serial_bus.htm