[coreboot] [SeaBIOS] USB Problems geode lx800

Christian Gmeiner christian.gmeiner at gmail.com
Wed Oct 17 07:42:33 CEST 2012


2012/10/17 Kevin O'Connor <kevin at koconnor.net>:
> On Tue, Oct 16, 2012 at 04:11:08PM +0200, Christian Gmeiner wrote:
>> 2012/10/15 Kevin O'Connor <kevin at koconnor.net>:
>> > On Sun, Oct 14, 2012 at 07:48:00PM +0000, Christian Gmeiner wrote:
>> >> On 11 Oct 2012 16:42, "Christian Gmeiner" <christian.gmeiner at gmail.com>
>> >> wrote:
>> >> > 2012/10/11 Christian Gmeiner <christian.gmeiner at gmail.com>:
>> >> > > 2012/10/11 Kevin O'Connor <kevin at koconnor.net>:
>> >> > >> On Tue, Oct 09, 2012 at 02:31:05PM +0200, Christian Gmeiner wrote:
>> >> > >>> 2012/10/9 Kevin O'Connor <kevin at koconnor.net>:
>> >> > >>> > On Mon, Oct 08, 2012 at 02:14:03PM +0200, Christian Gmeiner wrote:
>> >> > >>> >> HI all
>> >> > >>> >>
>> >> > >>> >> I am running into some usb problems with coreboot & seabios:
>> >> > >>> > Can you set the debug level to 8 and post the whole log?  Also, for
>> >> > >>> > timeout issues, having timestamps (via tools/readserial.py tool)
>> >> > >>> > sometimes helps.
>> > [...]
>> >> Kevin do you have an idea what could be wrong?
>> >
>> > I haven't had a chance to take a look at it.  Something odd is going
>> > on, as it appears the transfer that's failing isn't even being
>> > started.  I'll see if I can take a look this week.
>> >
>> > -Kevin
>>
>> He Kevin,
>>
>> I have made some success to get USB working - current SeaBios ehci
>> driver does not support toggling between
>> DATA0 and DATA1. Here is my current patch to get a little bit more running:
>
> The toggle bit should be updated automatically by the controller.  It
> should not be necessary to do it manually.  If this is impacting your
> results, something subtle must going on.
>

Maybe you are right (starred at the spec for some minutes), but who
updates the toggle bit in the qh?

So I think that this line is needed:
pipe->qh.token|= (pipe->pipe.toogle?QTD_TOGGLE:0);

I can run some tests later... I am out of office the half day.

Also if the HC updates the toogle in qtd's it should be readable after
the transfer is complete - or?
So I will add a debug statement to print the toggle value of all
processed qtd... and in theory I should
see a DATA0 -> DATA1 toggle.


ehci-hcd.c from linux:
/* Except for control endpoints, we make hardware maintain data
 * toggle (like OHCI) ... here (re)initialize the toggle in the QH,
 * and set the pseudo-toggle in udev. Only usb_clear_halt() will
 * ever clear it.
 */

So there mus be a way to tell the hardware to maintain the toggle bit
on its own or
to do it in software?

--
Christian Gmeiner MSc




More information about the coreboot mailing list