NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/47717: interrupt problem when starting an Acer Labs M5237 USB ohci controller



>Number:         47717
>Category:       kern
>Synopsis:       interrupt problem when starting an Acer Labs M5237 USB ohci 
>controller
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Apr 05 08:20:00 +0000 2013
>Originator:     Martin Husemann
>Release:        NetBSD 6.99.19
>Organization:
The NetBSD Foundation, Inc.
>Environment:
System: NetBSD whoever-brings-the-night.aprisoft.de 6.99.19 NetBSD 6.99.19 
(WHOEVER) #53: Tue Apr 2 14:15:55 CEST 2013 
martin%emmas.aprisoft.de@localhost:/usr/src/sys/arch/sparc64/compile/WHOEVER 
sparc64
Architecture: sparc64
Machine: sparc64
>Description:

When booting a sun blade 2500 with usb devices (like keyboard or mouse) plugged
into the on-board usb ports, we fail to start the ohci controller and disable
the port.

When removing the devices during boot and plugin them in later, everything
works fine.

This is not a problem with firmware/handover, as it happens with serial
console as well and also for devices the firmware does not know about.

Here is the relevant dmesg sniplet:

ohci0 at pci2 dev 10 function 0: Acer Labs M5237 USB 1.1 Host Controller (rev. 
0x03)
ohci0: interrupting at ivec 7a7
ohci0: OHCI version 1.0, legacy support
usb0 at ohci0: USB revision 1.0
ohci1 at pci2 dev 11 function 0: Acer Labs M5237 USB 1.1 Host Controller (rev. 
0x03)
ohci1: interrupting at ivec 7a6
ohci1: OHCI version 1.0, legacy support
usb1 at ohci1: USB revision 1.0

Note that there is no companion EHCI controller (M5239) on this pci bus,
otherwise this workaround from OpenSolaris might be enough:

   1113         /*
   1114          * Acer Labs Inc. M5273 EHCI controller does not send
   1115          * interrupts unless the Root hub ports are routed to the EHCI
   1116          * host controller; so route the ports now, before we test for
   1117          * the presence of SOFs interrupts.
   1118          */
   1119         if (ehcip->ehci_vendor_id == PCI_VENDOR_ALI) {
   1120                 /* Route all Root hub ports to EHCI host controller */
   1121                 Set_OpReg(ehci_config_flag, EHCI_CONFIG_FLAG_EHCI);
   1122         }

http://nxr.netbsd.org/xref/src-opensolaris/onnv-gate/usr/src/uts/common/io/usb/hcd/ehci/ehci_util.c#1110

Note: they talk about M5273, not M5237, but the code does not
differentiate the two. I could not find other similar workarounds that
would affect this machine.

FreeBSD 9.1 does not have this problem on this machine.

>How-To-Repeat:
See above.
>Fix:
No idea yet.



Home | Main Index | Thread Index | Old Index