ehci breaking Supermicro IPMI keyboard on uhci?
Steven Hartland
killing at multiplay.co.uk
Tue Nov 4 00:07:08 UTC 2014
Had the problem where the Supermicro IPMI keyboard wouldn't work on some
machines for a while, tonight I finally had time to play with all the
options to see if anything would make it work.
Turns out adding the following to loader.conf does fixes the issue:
hint.ehci.0.disabled="1"
So the question is why would this help?
Surely disabling one controller shouldn't make devices attached to
another work?
Messages when working (with ehci.0 disabled):
Nov 3 23:18:42 test1 kernel: usbus0 on uhci0
Nov 3 23:18:42 test1 kernel: usbus1 on uhci1
Nov 3 23:18:42 test1 kernel: usbus2 on uhci2
Nov 3 23:18:42 test1 kernel: usbus0: 12Mbps Full Speed USB v1.0
Nov 3 23:18:42 test1 kernel: usbus1: 12Mbps Full Speed USB v1.0
Nov 3 23:18:42 test1 kernel: usbus2: 12Mbps Full Speed USB v1.0
Nov 3 23:18:42 test1 kernel: ugen1.1: <Intel> at usbus1
Nov 3 23:18:42 test1 kernel: uhub0: <Intel UHCI root HUB, class 9/0,
rev 1.00/1.00, addr 1> on usbus1
Nov 3 23:18:42 test1 kernel: ugen0.1: <Intel> at usbus0
Nov 3 23:18:42 test1 kernel: uhub1: <Intel UHCI root HUB, class 9/0,
rev 1.00/1.00, addr 1> on usbus0
Nov 3 23:18:42 test1 kernel: ugen2.1: <Intel> at usbus2
Nov 3 23:18:42 test1 kernel: uhub2: <Intel UHCI root HUB, class 9/0,
rev 1.00/1.00, addr 1> on usbus2
Nov 3 23:18:42 test1 kernel: Root mount waiting for: usbus2
Nov 3 23:18:42 test1 kernel: ugen2.2: <Peppercon AG> at usbus2
Nov 3 23:18:42 test1 kernel: ukbd0: <Peppercon AG Multidevice, class
0/0, rev 2.00/0.01, addr 2> on usbus2
usbconfig list
ugen1.1: <UHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=FULL
(12Mbps) pwr=SAVE (0mA)
ugen0.1: <UHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=FULL
(12Mbps) pwr=SAVE (0mA)
ugen2.1: <UHCI root HUB Intel> at usbus2, cfg=0 md=HOST spd=FULL
(12Mbps) pwr=SAVE (0mA)
ugen2.2: <Multidevice Peppercon AG> at usbus2, cfg=0 md=HOST spd=FULL
(12Mbps) pwr=ON (100mA)
Messages when not working:
Nov 3 23:02:45 test1 kernel: usbus0 on uhci0
Nov 3 23:02:45 test1 kernel: usbus1 on uhci1
Nov 3 23:02:45 test1 kernel: usbus2 on uhci2
Nov 3 23:02:45 test1 kernel: usbus3: EHCI version 1.0
Nov 3 23:02:45 test1 kernel: usbus3 on ehci0
Nov 3 23:02:45 test1 kernel: usbus0: 12Mbps Full Speed USB v1.0
Nov 3 23:02:45 test1 kernel: usbus1: 12Mbps Full Speed USB v1.0
Nov 3 23:02:45 test1 kernel: usbus2: 12Mbps Full Speed USB v1.0
Nov 3 23:02:45 test1 kernel: usbus3: 480Mbps High Speed USB v2.0
Nov 3 23:02:45 test1 kernel: ugen1.1: <Intel> at usbus1
Nov 3 23:02:45 test1 kernel: uhub0: <Intel UHCI root HUB, class 9/0,
rev 1.00/1.00, addr 1> on usbus1
Nov 3 23:02:45 test1 kernel: ugen0.1: <Intel> at usbus0
Nov 3 23:02:45 test1 kernel: uhub1: <Intel UHCI root HUB, class 9/0,
rev 1.00/1.00, addr 1> on usbus0
Nov 3 23:02:45 test1 kernel: ugen3.1: <Intel> at usbus3
Nov 3 23:02:45 test1 kernel: uhub2: <Intel EHCI root HUB, class 9/0,
rev 2.00/1.00, addr 1> on usbus3
Nov 3 23:02:45 test1 kernel: ugen2.1: <Intel> at usbus2
Nov 3 23:02:45 test1 kernel: uhub3: <Intel UHCI root HUB, class 9/0,
rev 1.00/1.00, addr 1> on usbus2
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: usb_alloc_device: set address 2 failed
(USB_ERR_IOERROR, ignored)
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: usbd_setup_device_desc: getting device
descriptor at addr 2 failed, USB_ERR_IOERROR
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: usbd_req_re_enumerate: addr=2, set address
failed! (USB_ERR_IOERROR, ignored)
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: usbd_setup_device_desc: getting device
descriptor at addr 2 failed, USB_ERR_IOERROR
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: usbd_req_re_enumerate: addr=2, set address
failed! (USB_ERR_IOERROR, ignored)
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: usbd_setup_device_desc: getting device
descriptor at addr 2 failed, USB_ERR_IOERROR
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: usbd_req_re_enumerate: addr=2, set address
failed! (USB_ERR_IOERROR, ignored)
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: usbd_setup_device_desc: getting device
descriptor at addr 2 failed, USB_ERR_IOERROR
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: usbd_req_re_enumerate: addr=2, set address
failed! (USB_ERR_IOERROR, ignored)
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: usbd_setup_device_desc: getting device
descriptor at addr 2 failed, USB_ERR_IOERROR
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: usbd_req_re_enumerate: addr=2, set address
failed! (USB_ERR_IOERROR, ignored)
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: Root mount waiting for: usbus3
Nov 3 23:02:45 test1 kernel: usbd_setup_device_desc: getting device
descriptor at addr 2 failed, USB_ERR_IOERROR
Nov 3 23:02:45 test1 kernel: usb_alloc_device: Failure selecting
configuration index 0:USB_ERR_IOERROR, port 6, addr 2 (ignored)
Nov 3 23:02:45 test1 kernel: ugen3.2: <vendor 0x14dd> at usbus3
usbconfig list
ugen1.1: <UHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=FULL
(12Mbps) pwr=SAVE (0mA)
ugen0.1: <UHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=FULL
(12Mbps) pwr=SAVE (0mA)
ugen3.1: <EHCI root HUB Intel> at usbus3, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=SAVE (0mA)
ugen2.1: <UHCI root HUB Intel> at usbus2, cfg=0 md=HOST spd=FULL
(12Mbps) pwr=SAVE (0mA)
More information about the freebsd-usb
mailing list