Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Jun 2005 14:08:18 +0200
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        Stefan Walter <sw@gegenunendlich.de>
Cc:        freebsd-usb@freebsd.org
Subject:   Re: usb/82660: EHCI: I/O stuck in state 'physrd'/panic
Message-ID:  <200506301408.20619.hselasky@c2i.net>
In-Reply-To: <20050629135802.GA976@kyuzo.dunkelkammer.void>
References:  <20050626091628.775DD3A1D@kyuzo.dunkelkammer.void> <200506291225.36375.hselasky@c2i.net> <20050629135802.GA976@kyuzo.dunkelkammer.void>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 29 June 2005 15:58, Stefan Walter wrote:
> [Cc'd usb@, maybe someone else wants to comment on this, too.]
>
> Hans Petter Selasky, 29.06.05, 12:25h CEST:
> > On Tuesday 28 June 2005 19:23, you wrote:
> > > Hi,
> > >
> > > Hans Petter Selasky, 26.06.05, 14:15h CEST:
> > > > I know there is bug related to the alignments of hardware structures
> > > > in the existing EHCI driver. The EHCI driver works with generic intel
> > > > chips, but not others.
> > > >
> > > > Could you have tried my USB driver and see if the problem is the
> > > > same?
> > >
> > > I tried your driver today, but unfortunately the same thing happened:
> > > I/O got stuck after reading a few KBytes.
> >
> > OK, then your problem is most likely inside /sys/dev/usb/umass.c.
> >
> > Try "sysctl hw.usb.umass.debug=15" while you have the my driver in the
> > kernel, hence it has got debugging flags enabled by default. Else you
> > need to add something like "option USB_DEBUG" to your kernel config file.
> > I'm not sure if you can compile the modules with debugging support unless
> > you use my USB driver.
> >
> > See if any errors show up.
> >
> > Then try "sysctl hw.usb.debug=15". See if any errors appear.
>
> I tried that with the official FreeBSD driver for now (USB_DEBUG and ehci
> in the kernel).
>
> hw.usb.umass.debug=15 didn't show me any messages during the transfer,
> only when (dis)connecting the device. hw.usb.debug=15 dumped a lot of
> output. It's available here:

Try "sysctl hw.usb.umass.debug=-1" while "hw.usb.debug=0".

You should get some error messages, hence your logs show that transfers are 
failing:

Jun 29 15:26:58 kyuzo kernel: usb_transfer_complete: pipe=0xc2068d00 
xfer=0xc215a300 status=17 actlen=0 (STALL)

This can indicate that EHCI got the data toggle wrong.

Jun 29 15:28:43 kyuzo kernel: usb_transfer_complete: pipe=0xc2068d00 
xfer=0xc215a300 status=15 actlen=0 (TIMEOUT)

If you are loading umass as a module, you need to add
#ifndef USB_DEBUG
#define USB_DEBUG
#endif
before
#ifdef USB_DEBUG
in the file /sys/dev/usb/umass.c, and then recompile and install the module:

make -C/sys/modules/umass depend all install clean

You might also want to add:
#undef DIF
#define DIF(args...)
after the ifdef/endif USB_DEBUG, to limit the debugging output, if there is 
too much dmsg.

>
> I haven't tried the same with your driver, yet - would that bring more
> info?

You will get something similar.

--HPS



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