Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Dec 2008 17:22:05 +0100
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        Sam Leffler <sam@freebsd.org>
Cc:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   Re: PERFORCE change 154573 for review
Message-ID:  <200812161722.06337.hselasky@c2i.net>
In-Reply-To: <494598B0.9090501@freebsd.org>
References:  <200812122326.mBCNQX6w024511@repoman.freebsd.org> <200812141623.51473.hselasky@c2i.net> <494598B0.9090501@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 15 December 2008, Sam Leffler wrote:
> Hans Petter Selasky wrote:
> > On Saturday 13 December 2008, Sam Leffler wrote:
> >> Hans Petter Selasky wrote:
> >>> On Saturday 13 December 2008, Sam Leffler wrote:
> >>
> >> No.  But if you are interested in helping debug the problem I'm happy to
> >> send you debug output.  The controller rejects all cmds setting the
> >> ERRINT status bit.  The qTD contents and xfer contents look fine but I
> >> haven't been able to identify the cause given the overlay qTD contents.
> >> I'm in the process of collecting comparative traces from linux where usb
> >> works.
> >
> > Send me the EHCI traces and I will have a look at it. Have you tried
> > USB2? The patches which you need to apply should be similar.
>
> This is what I get w/ sysctl hw.usb.ehci.debug=6 for the first cmd
> submitted after card insert:
>

>
> Subsequent cmds fail similarly.  I don't see the issue and don't
> understand how to use the overlay qTD information to pinpoint the reason
> the controller is rejecting the request.
>
> This happens w/ either of the 2 USB ports (1 port / controller):
>

Hi Sam,

The overlay qTD is a copy of the last processed QTD. You might need to do a 
cache invalidate on the memory region before reading it.

What I see:

- The first TD completed successfully, and that TD had a lower physical memory 
adddress than the one that failed.

 buffer[0]=0x01091fc8

vs:

 buffer[0]=0x014b8a3c

- Halted usually means that that you had a STALL token sent from the device to 
the host, which indicates that the contents of the SETUP packet (PID=2), in 
the first TD did not contain valid data, possible due to a missing cache 
flush.

        return ((status & EHCI_QTD_HALTED) ?
            USB_ERR_STALLED : USB_ERR_NORMAL_COMPLETION);

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812161722.06337.hselasky>