Subject: kern/32493: ehci0: wrong number of companions
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <agrier@poofygoof.com>
List: netbsd-bugs
Date: 01/10/2006 19:00:00
>Number:         32493
>Category:       kern
>Synopsis:       ehci0: wrong number of companions
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jan 10 19:00:00 +0000 2006
>Originator:     agrier@poofygoof.com
>Release:        NetBSD 2.0.2_STABLE
>Organization:
>Environment:
	
	
System: NetBSD 2.0.2_STABLE (ORTHANC) #6: Tue Sep 20 12:37:27 PDT 2005 aaron@orthanc.unix.fryenet:/var/obj/ORTHANC                             
Architecture: i386
Machine: i386
>Description:
the ehci driver disables itself if there are holes in the companion uhci
list:

uhci0 at pci0 dev 29 function 0: Intel 82801EB/ER USB UHCI Controller #0 (rev. 0x02)
uhci0: interrupting at ioapic0 pin 16 (irq 11)
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1 at pci0 dev 29 function 1: Intel 82801EB/ER USB UHCI Controller #1 (rev. 0x02)
uhci1: interrupting at ioapic0 pin 19 (irq 10)
usb1 at uhci1: USB revision 1.0
uhub1 at usb1
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2 at pci0 dev 29 function 3: Intel 82801EB/ER USB UHCI Controller #3 (rev. 0x02)
uhci2: interrupting at ioapic0 pin 16 (irq 11)
usb2 at uhci2: USB revision 1.0
uhub2 at usb2
uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
ehci0 at pci0 dev 29 function 7: Intel 82801EB/ER USB EHCI Controller (rev. 0x02)
ehci0: interrupting at ioapic0 pin 23 (irq 9)
ehci0: EHCI version 1.0
ehci0: wrong number of companions (4 != 3)
ehci0: init failed, error=13

there are three uhci controllers numbered 0, 1, 3.  ehci apparently
can't deal with the "missing" #2 controller.

I have two different systems which exhibit this problem: one VIA; one
intel (shown above).  there appears to be no way to get the uhci
controllers to number themselves sequentially.

USB 1.1 on uhci works well enough (barring "umass0: no buffer memory"
messages, but that's a separate PR) but at 1MB/s is a little tedious for
moving large files around and USB 2.0 support would be much preferred.

>How-To-Repeat:
enable the ehci driver for motherboards which have disjoint uhci numberings.
>Fix:
add code to have ehci deal with holes in the companion uhci list.