usb/82660: EHCI: I/O stuck in state 'physrd'/panic
Hans Petter Selasky
hselasky at c2i.net
Sat Jul 9 21:51:40 GMT 2005
On Saturday 09 July 2005 15:53, Stefan Walter wrote:
> Hans Petter Selasky, 09.07.05, 14:36h CEST:
> > > I don't think it's the USB stick, as the device works fine with ehci at
> > > my notebook (Intel chipset). Furthermore, I could now reproduce the
> > > problem with an external USB HD enclosure, too.
> >
> > Ok, lets have a look at the EHCI driver and see what is going on. I'm not
> > sure how to do this with the official USB driver, but if you could have
> > installed my USB driver again, and replace the function "ehci_timeout()"
> > in the file "/sys/dev/usb2/_ehci.c" with the following:
>
> [...]
>
> > And then compile a new kernel and/or modules.
> >
> > Your device was USB 2.0, right, else you have to do something similar
> > to /sys/dev/usb2/_uhci.c if the device is USB 1.X.
> >
> > Just leave all debugging flags off, and then try to reproduce the error
> > [one or more times] and post the dmsg that appears.
>
> OK, dmesg says the following:
>
> QTD(0xdeb321c0) at 0x1f3501c0:
> next=0x00000001<T> altnext=0x00000001<T>
> status=0x10008d80: toggle=0 bytes=0x1000 ioc=1 c_page=0x0
> cerr=3 pid=1 stat=80<ACTIVE>
> buffer[0]=0x1f34f0d0
> buffer[1]=0x1f350000
> buffer[2]=0x00000000
> buffer[3]=0x00000000
> buffer[4]=0x00000000
> _ehci_remove_qh: 0xdeb32400 from 0xdeb32400
>
This doesn't indicate any errors. The transfer is simply waiting for data and
the USB device is not supplying any so the transfer does not finish. But I
want to have a look at a parent structure too, to see if your EHCI controller
is not writing back or updating the last QTD. In the
file /sys/dev/usb2/_ehci.c in the function ehci_device_done():
Change this:
DPRINTF(("nexttog=%d; data after transfer:\n",
xfer->pipe->toggle_next));
ehci_dump_sqtds(xfer->td_start);
Into this :
DPRINTF(("nexttog=%d; data after transfer:\n",
xfer->pipe->toggle_next));
ehci_dump_sqtds(xfer->td_start);
ehci_dump_sqh(xfer->qh_start);
Recompile and reproduce the bug three or four times and post the dmsg.
--HPS
More information about the freebsd-usb
mailing list