[SeaBIOS] USB OHCI issues when keyboard activity occurs prior to booting from thumbdrive

Kevin O'Connor kevin at koconnor.net
Sat Mar 17 02:12:44 CET 2012


On Fri, Mar 16, 2012 at 03:37:37PM -0600, Dave Frodin wrote:
> 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%.

That's odd.

> 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" ?

In ohci_control() the function exits when the pipe->ed indicates the
transfer is complete.  However, the controller can write to the tds[]
structs after the pipe->ed is updated.  Therefore there could be a
race between the controller and driver.  Similarly, ohci_poll_intr()
has the same issue.  This is just in the OHCI code - I don't know of
any issues in the UHCI/EHCI code.

I tried to fix this when I was working on the USB patch series I
recently posted.  However, the stuff I tried made the OHCI controller
less stable on my e350m1 machine.

-Kevin



More information about the SeaBIOS mailing list