Date: Sun, 14 Dec 2008 15:37:20 -0800 From: Sam Leffler <sam@freebsd.org> To: Hans Petter Selasky <hselasky@c2i.net> Cc: Perforce Change Reviews <perforce@freebsd.org> Subject: Re: PERFORCE change 154573 for review Message-ID: <494598B0.9090501@freebsd.org> In-Reply-To: <200812141623.51473.hselasky@c2i.net> References: <200812122326.mBCNQX6w024511@repoman.freebsd.org> <200812131005.33499.hselasky@c2i.net> <494414EF.3080403@freebsd.org> <200812141623.51473.hselasky@c2i.net>
next in thread | previous in thread | raw e-mail | index | archive | help
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: avila1# ehci_pcd: change=0x02 ehci_root_ctrl_start: type=0xa3 request=00 ehci_root_ctrl_start: type=0x23 request=01 ehci_root_ctrl_start: type=0x23 request=03 ehci_root_ctrl_start: reset port 1 ehci_pcd: change=0x00 ehci after reset, status=0x08001205 ehci port 1 reset, status = 0x08001205 ehci_root_ctrl_start: type=0xa3 request=00 ehci_root_ctrl_start: type=0x23 request=01 ehci_root_ctrl_start: type=0xa3 request=00 ehci_open: pipe=0xc1101d80, xfertype=0, addr=0, endpt=1 (0) ehci_add_qh: QH(0xd0093de0) at 0x01088de0: sqtd=0xd0094de0 inactivesqtd=0xd0094de0 link=0x01088e42<QH> endp=0x80086000 addr=0x00 inact=0 endpt=0 eps=2 dtc=1 hrecl=0 mpl=0x8 ctl=0 nrl=8 endphub=0x40811c00 smask=0x00 cmask=0x1c huba=0x01 port=1 mult=1 curqtd=0x00000001<T> Overlay qTD: next=0x01089de0<> altnext=0x00000001<T> status=0x00000000: toggle=0 bytes=0x0 ioc=0 c_page=0x0 cerr=0 pid=0 stat=0x0 buffer[0]=0x00000000 buffer[1]=0x00000000 buffer[2]=0x00000000 buffer[3]=0x00000000 buffer[4]=0x00000000 ehci_device_request: type=0x80, request=0x06, wValue=0x0100, wIndex=0x0000 len=8, addr=0, endpt=0 ehci_alloc_sqtd_chain: start len=8 ehci_device_request: QH(0xd0093de0) at 0x01088de0: sqtd=0xd0094de0 inactivesqtd=0xd0094d80 link=0x01088e42<QH> endp=0x80086000 addr=0x00 inact=0 endpt=0 eps=2 dtc=1 hrecl=0 mpl=0x8 ctl=0 nrl=8 endphub=0x40811c00 smask=0x00 cmask=0x1c huba=0x01 port=1 mult=1 curqtd=0x00000001<T> Overlay qTD: next=0x01089de0<> altnext=0x00000001<T> status=0x00000000: toggle=0 bytes=0x0 ioc=0 c_page=0x0 cerr=0 pid=0 stat=0x0 buffer[0]=0x00000000 buffer[1]=0x00000000 buffer[2]=0x00000000 buffer[3]=0x00000000 buffer[4]=0x00000000 QTD(0xd0094de0) at 0x01089de0: next=0x01089cc0<> altnext=0x01089d80<> status=0x00080e00: toggle=0 bytes=0x8 ioc=0 c_page=0x0 cerr=3 pid=2 stat=0x0 buffer[0]=0x01091fc0 buffer[1]=0x00000000 buffer[2]=0x00000000 buffer[3]=0x00000000 buffer[4]=0x00000000 QTD(0xd0094cc0) at 0x01089cc0: next=0x01089d20<> altnext=0x01089d80<> status=0x80080d80: toggle=1 bytes=0x8 ioc=0 c_page=0x0 cerr=3 pid=1 stat=0x80<ACTIVE> buffer[0]=0x014b8a3c buffer[1]=0x00000000 buffer[2]=0x00000000 buffer[3]=0x00000000 buffer[4]=0x00000000 QTD(0xd0094d20) at 0x01089d20: next=0x01089d80<> altnext=0x01089d80<> status=0x80008c80: toggle=1 bytes=0x0 ioc=1 c_page=0x0 cerr=3 pid=0 stat=0x80<ACTIVE> buffer[0]=0x00000000 buffer[1]=0x00000000 buffer[2]=0x00000000 buffer[3]=0x00000000 buffer[4]=0x00000000 QTD(0xd0094d80) at 0x01089d80: next=0x00000001<T> altnext=0x00000001<T> status=0x00000000: toggle=0 bytes=0x0 ioc=0 c_page=0x0 cerr=0 pid=0 stat=0x0 buffer[0]=0x00000000 buffer[1]=0x00000000 buffer[2]=0x00000000 buffer[3]=0x00000000 buffer[4]=0x00000000 ehci_intr1: ERRINT ehci_check_intr: ex=0xc1096800 ehci_idone: ex=0xc1096800 ehci_idone: xfer=0xc1096800, pipe=0xc1101d80 ready ehci_idone: updated overlay next ptr ehci_idone: len=8, actlen=0, cerr=3, status=0x80080d40 ehci_idone: error, addr=0, endpt=0x00, status 0x80080d40<HALTED> QH(0xd0093de0) at 0x01088de0: sqtd=0xd0094de0 inactivesqtd=0xd0094d80 link=0x01088e42<QH> endp=0x80086000 addr=0x00 inact=0 endpt=0 eps=2 dtc=1 hrecl=0 mpl=0x8 ctl=0 nrl=8 endphub=0x40811c00 smask=0x00 cmask=0x1c huba=0x01 port=1 mult=1 curqtd=0x01089cc0<> Overlay qTD: next=0x01089d80<> altnext=0x01089d90<> status=0x80080d40: toggle=1 bytes=0x8 ioc=0 c_page=0x0 cerr=3 pid=1 stat=0x40<HALTED> buffer[0]=0x014b8a3c buffer[1]=0x00000008 buffer[2]=0x00000000 buffer[3]=0x00000000 buffer[4]=0x00000000 QTD(0xd0094de0) at 0x01089de0: next=0x01089cc0<> altnext=0x01089d80<> status=0x80000e00: toggle=1 bytes=0x0 ioc=0 c_page=0x0 cerr=3 pid=2 stat=0x0 buffer[0]=0x01091fc8 buffer[1]=0x00000000 buffer[2]=0x00000000 buffer[3]=0x00000000 buffer[4]=0x00000000 QTD(0xd0094cc0) at 0x01089cc0: next=0x01089d20<> altnext=0x01089d80<> status=0x80080d40: toggle=1 bytes=0x8 ioc=0 c_page=0x0 cerr=3 pid=1 stat=0x40<HALTED> buffer[0]=0x014b8a3c buffer[1]=0x00000000 buffer[2]=0x00000000 buffer[3]=0x00000000 buffer[4]=0x00000000 QTD(0xd0094d20) at 0x01089d20: next=0x01089d80<> altnext=0x01089d80<> status=0x80008c80: toggle=1 bytes=0x0 ioc=1 c_page=0x0 cerr=3 pid=0 stat=0x80<ACTIVE> buffer[0]=0x00000000 buffer[1]=0x00000000 buffer[2]=0x00000000 buffer[3]=0x00000000 buffer[4]=0x00000000 QTD(0xd0094d80) at 0x01089d80: next=0x00000001<T> altnext=0x00000001<T> status=0x00000000: toggle=0 bytes=0x0 ioc=0 c_page=0x0 cerr=0 pid=0 stat=0x0 buffer[0]=0x00000000 buffer[1]=0x00000000 buffer[2]=0x00000000 buffer[3]=0x00000000 buffer[4]=0x00000000 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): ehci0: <IXP4XX Integrated USB 2.0 controller> on ixp0 ehci0: [GIANT-LOCKED] ehci0: [ITHREAD] usb0: EHCI version 1.0 usb0: stop timeout usb0: set host controller mode usb0 on ehci0 usb0: USB revision 2.0 uhub0: <Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1> on usb0 uhub0: 1 port with 1 removable, self powered ehci1: <IXP4XX Integrated USB 2.0 controller> on ixp0 ehci1: [GIANT-LOCKED] ehci1: [ITHREAD] usb1: EHCI version 1.0 usb1: stop timeout usb1: set host controller mode usb1 on ehci1 usb1: USB revision 2.0 uhub1: <Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1> on usb1 uhub1: 1 port with 1 removable, self powered Sam
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?494598B0.9090501>