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

Dave Frodin dave at camp.se-eng.com
Wed Mar 7 23:47:58 CET 2012


All,

I'm seeing another USB issue with our platform(s). I've been following the
other active USB mail list issue "usb ohci pipe free fix" but don't exactly
know where that one started. I'm only guessing that this could be related.

The description of my h/w setup is ...
  - AMD/Persimmon platform (also observed failure on IEI/Kino)
  - USB thumbdrive with GRUB (menu options for Ubuntu,memtest86,etc)
  - USB wireless keyboard/mouse (also observed failure with wired USB keyboard)

I using the SeaBIOS master source.

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.

I then changed the SeaBIOS debug message level to 8. Then at the point where I hit <ENTER>
for the default GRUB option. I will see several debug messages indicating traffic related
to the USB thumbdrive and then never ending "handle_hwpic1 irq=0" messages.

Then as I was browsing through the usb code I noticed that some of the keyboard messages only
occur at level 9, so I set the level to 9 and all of my booting failures went away. ?.
I tracked the message that was somehow fixing my problem down to the file usb-hid.c, in ftn
handle_key() (~line 216). If I change that "dprintf(9,..." to "dprintf(1,...", and change
the debug message level down below 9, everything still works.

So the delay due to that one debug message fixes some issue related to using a USB keyboard
and thumbdrive at the same time. I don't see this issue if I use a SATA drive instead of the
USB thumbdrive. Our in-house USB guru (whose not familiar with coreboot) suggests it could be
an issue with the OHCI stack.

Does anybody have any suggestions on what this could be? 
Or where I should start looking?

thanks in advance,
Dave



More information about the SeaBIOS mailing list