usb/82660: EHCI: I/O stuck in state 'physrd'/panic
Hans Petter Selasky
hselasky at c2i.net
Sun Jul 10 11:00:10 GMT 2005
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
More information about the freebsd-usb
mailing list