Date: Sun, 10 Jul 2005 13:01:02 +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: <200507101301.04434.hselasky@c2i.net> In-Reply-To: <20050710093359.GA840@kyuzo.dunkelkammer.void> References: <20050626091628.775DD3A1D@kyuzo.dunkelkammer.void> <200507092352.33451.hselasky@c2i.net> <20050710093359.GA840@kyuzo.dunkelkammer.void>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 10 July 2005 11:33, Stefan Walter wrote: > Hans Petter Selasky, 09.07.05, 23:52h CEST: > > QTD(0xc2127100) at 0x1aa5b100: > next=0x00000001<T> altnext=0x00000001<T> > status=0x000d8d80: toggle=0 bytes=0xd ioc=1 c_page=0x0 > cerr=3 pid=1 stat=80<ACTIVE> > buffer[0]=0x1aa5b0d0 > buffer[1]=0x1aa5b000 > buffer[2]=0x00000000 > buffer[3]=0x00000000 > buffer[4]=0x00000000 > QH(0xc2127200) at 0x1aa5b200: > link=0x1f3a8002<QH> > endp=0x8200617e > addr=0x7e inact=0 endpt=1 eps=2 dtc=1 hrecl=0 > mpl=0x200 ctl=0 nrl=8 > endphub=0x40fff000 > smask=0x00 cmask=0xf0 huba=0x7f port=1 mult=1 > curqtd=0x1aa5b100<> > Overlay qTD: > next=0x00000001<T> altnext=0x00000001<T> > status=0x000d8d80: toggle=0 bytes=0xd ioc=1 c_page=0x0 > cerr=3 pid=1 stat=80<ACTIVE> > buffer[0]=0x1aa5b0d0 > buffer[1]=0x1aa5b000 > buffer[2]=0x00000000 > buffer[3]=0x00000000 > buffer[4]=0x00000000 Again, I cannot see any errors. The 13 bytes this transfer should transfer are the 13 bytes of the CSW. Is it possible that you could connect two USB 2.0 flash disks to the same USB controller and see if they both hang at the same time. That might indicate that there is something wrong with the EHCI driver. I had another look at /sys/dev/usb/umass.c and wondered why the CSW has the same timeout as the data transfer. Add: sc->timeout = 1000; Before: /* Read the Command Status Wrapper via bulk-in endpoint. */ if (umass_setup_transfer(sc, sc->bulkin_pipe, &sc->csw, UMASS_BBB_CSW_SIZE, 0, next_xfer)) { umass_bbb_reset(sc, STATUS_WIRE_FAILED); return; } This will shorten the time the driver will wait before doing the reset, and your device might work better. Could you have verified the checksum of the files you are reading/writing while this error happens, and see that no data is lost? --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200507101301.04434.hselasky>