[SeaBIOS] EHCI boot problems
Dave Frodin
dave.frodin at se-eng.com
Tue Sep 9 21:15:04 CEST 2014
I'm seeing a problem booting from USB thumbdrives with commit ab9d771ce
ehci: Update usb command timeouts to use usb_xfer_time()
I'm not quite sure what the problem is other than it not liking the new
timeouts.
I couldn't see any problems with the ehci_control() calls to ehci_wait_td().
But the ehci_send_bulk() only allows the system to boot if I change
int ret = ehci_wait_td(pipe, td, end);
to
int ret = ehci_wait_td(pipe, td, timer_calc(5000));
One potential problem is that the "end" value is calculated once and reused
multiple times in the functions. Prior to the commit the timeout value was
passed
to the ehci_wait_td() function. Now the final "end" time is passed. So it
looks like
once the end timeout is reached in one of the loops that calls
ehci_wait_td() the
timer will always be expired for any other calls from that function.
One solution might be to get rid of the "end" variable and change the calls
from
ret = ehci_wait_td(pipe, td, end);
to
ret = ehci_wait_td(pipe, td, timer_calc(usb_xfer_time(p, datasize)));
Making the above change didn't have any impact on my booting problem until
I forced the ehci_send_bulk() timeouts to 5000.
Thanks in advance for any advice anyone can offer,
Dave
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.seabios.org/pipermail/seabios/attachments/20140909/556acaef/attachment.html>
More information about the SeaBIOS
mailing list