Kevin, I mentioned in a response to the "Re: [SeaBIOS] usb-msc.c: TEST_UNIT_READY needs USB_DIR_OUT?" email thread that when I applied the patches related to that thread the Ubuntu booting issue that I see in this thread actually increases the passing rate from ~0% to ~50%. Perhaps setting the DIR bit twice will solve my problem :)
I also was wondering if you could point me to the code that you referred to when you wrote ... "I did see what appears to be a race with USB "interrupt" pipe reading" ?
thanks in advance, Dave
The failure occurs when the system boots up to the GRUB menu. If I let the menu timeout it will boot the default option which is Ubuntu. If I hit the <Enter> key the system will lock-up with no output on the debug COM port. If at the GRUB menu and I <down arrow> to the memtest86 option, it will sometimes work and sometimes lockup.
In the processes of looking through the OHCI code, I did see what appears to be a race with USB "interrupt" pipe reading. The code is assuming the TD is complete when the ED acknowledges the change, but the spec is pretty clear that the TD can be modified after the ED is updated. However, I'd be quite surprised that such a small race would lead to reproducible failures. I also don't see how it would relate to EHCI thumbdrive usage.
-Kevin