kern/74088: ohci ehci uhub: port disabled on connecting USB memory card reader

Brian Candler b.candler at pobox.com
Thu Nov 18 08:30:35 PST 2004


>Number:         74088
>Category:       kern
>Synopsis:       ohci ehci uhub: port disabled on connecting USB memory card reader
>Confidential:   no
>Severity:       critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Nov 18 16:30:32 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Brian Candler
>Release:        FreeBSD 5.3-STABLE i386
>Organization:
>Environment:
System: FreeBSD billdog.local.linnet.org 5.3-STABLE FreeBSD 5.3-STABLE #3: Thu Nov 18 15:49:59 GMT 2004 root at billdog.local.linnet.org:/usr/src/sys/i386/compile/BILLDOG i386


	
>Description:

On connecting a Mitsumi 7-in-1 internal floppy+card reader, the USB port
becomes disabled. (The floppy drive works and appears as /dev/fd0; there are
separate IDC and power cables for that)

Compiling with 'options USB_DEBUG' and cranking up hw.usb.*.debug=1, here's
what I get when I connect the device:

Nov 18 16:07:57 billdog kernel: ehci_pcd: change=0x08
Nov 18 16:07:57 billdog kernel: uhub_explore: status change hub=1 port=3
Nov 18 16:07:58 billdog kernel: ehci after reset, status=0x00001001
Nov 18 16:07:58 billdog kernel: ehci_disown: index=3 lowspeed=0
Nov 18 16:07:58 billdog kernel: ohci_rhsc: sc=0xc1de7000 xfer=0xc1deb200 hstatus=0x00000000
Nov 18 16:07:58 billdog kernel: ohci_rhsc: change=0x02
Nov 18 16:07:58 billdog kernel: uhub_explore: status change hub=1 port=1
Nov 18 16:07:58 billdog kernel: ohci_rhsc: sc=0xc1de7000 xfer=0xc1deb200 hstatus=0x00000000
Nov 18 16:07:58 billdog kernel: ohci_rhsc: change=0x02
Nov 18 16:07:58 billdog kernel: ehci_pcd: change=0x08
Nov 18 16:07:58 billdog kernel: uhub_explore: status change hub=1 port=3
Nov 18 16:07:58 billdog kernel: usbd_new_device bus=0xc1de7000 port=1 depth=1 speed=2
Nov 18 16:07:58 billdog kernel: usbd_new_device: adding unit addr=3, rev=110, class=0, subclass=0, protocol=0, maxpacket=8, len=18, speed=2
Nov 18 16:07:58 billdog kernel: usbd_new_device: new dev (addr 3), dev=0xc2650880, parent=0xc1dd9880
Nov 18 16:07:58 billdog kernel: usbd_probe_and_attach: trying device specific drivers
Nov 18 16:07:58 billdog kernel: usbd_probe_and_attach: no device specific driver found
Nov 18 16:07:58 billdog kernel: usbd_probe_and_attach: looping over 1 configurations
Nov 18 16:07:58 billdog kernel: uhub1: port 1, set config at addr 3 failed, error=IOERROR
Nov 18 16:07:58 billdog kernel: usbd_remove_device: 0xc2650880
Nov 18 16:07:58 billdog kernel: ohci_device_ctrl_close: pipe=0xc2100800
Nov 18 16:07:58 billdog kernel: uhub_explore: usb_new_device failed, error=IOERROR
Nov 18 16:07:58 billdog kernel: uhub1: device problem, disabling port 1

With FreeBSD 5.2.1, I was able to get the memory sockets recognised after a
fashion (they were da0 and da1 for the compact flash and smartmedia sockets
respectively), although it wasn't reliable and I was hoping 5.3 would fix
that. Instead, I can't find the device at all...

>How-To-Repeat:

My system is a Soltek (EQ3702A?) small form factor PC with nVidia chipset,
relevant dmesg output:

ohci0: <OHCI (generic) USB controller> mem 0xee084000-0xee084fff irq 22 at device 2.0 on pci0
ohci0: [GIANT-LOCKED]
usb0: OHCI version 1.0, legacy support
usb0: SMM does not respond, resetting
usb0: <OHCI (generic) USB controller> on ohci0
usb0: USB revision 1.0
uhub0: nVidia OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
ulpt0: EPSON USB Printer, rev 1.10/1.00, addr 2, iclass 7/1
ohci1: <OHCI (generic) USB controller> mem 0xee085000-0xee085fff irq 21 at device 2.1 on pci0
ohci1: [GIANT-LOCKED]
usb1: OHCI version 1.0, legacy support
usb1: SMM does not respond, resetting
usb1: <OHCI (generic) USB controller> on ohci1
usb1: USB revision 1.0
uhub1: nVidia OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
ums0: Cypress Sem Cypress USB Mouse, rev 1.00/4.9c, addr 2, iclass 3/1
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xee086000-0xee0860ff irq 20 at device 2.2 on pci0
ehci0: [GIANT-LOCKED]
ehci_pci_attach: companion usb0
ehci_pci_attach: companion usb1
usb2: EHCI version 1.0
usb2: companion controllers, 4 ports each: usb0 usb1
usb2: <EHCI (generic) USB 2.0 controller> on ehci0
usb2: USB revision 2.0
uhub2: nVidia EHCI root hub, class 9/0, rev 2.00/1.00, addr 1

It works with a USB printer and mouse. However, I presume those are USB1.1,
and the card reader may be USB2.0; it didn't come with any documentation.
Compiling a kernel without 'ehci' doesn't work; the ohci interface is
detected, but plugging in a printer or mouse does nothing.

>Fix:

Sorry, I don't know anything about USB internals :-( But I'm happy to add
extra debugging in if someone will suggest where it should go.
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list