Recently, I've come across a problem with some key USB devices that used to work but since moving this server to FreeBSD 8-STABLE, they don't. This is 8.3-PRERELEASE at svn rev r231818.
The devices in question are a USB CD-ROM, USB keyboard, and USB mouse. All are provided directly onto the motherboard by an IPMI controller for remote lights-out management. This previously worked, but this machine was last running FreeBSD in the late 6.x early 7.x era. And indeed they all *still* work all the way up through the boot process until the loader exits and the kernel takes over. (Well, except the virtual mouse, which I have no way to test / no need for.) When the machine boots, the following appears on console/dmesg: usbus0: 12Mbps Full Speed USB v1.0 usbus1: 12Mbps Full Speed USB v1.0 usbus2: 12Mbps Full Speed USB v1.0 usbus3: 480Mbps High Speed USB v2.0 ugen0.1: <Intel> at usbus0 uhub0: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0 ugen1.1: <Intel> at usbus1 uhub1: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1 ugen2.1: <Intel> at usbus2 uhub2: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus2 ugen3.1: <Intel> at usbus3 uhub3: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus3 uhub0: 2 ports with 2 removable, self powered uhub1: 2 ports with 2 removable, self powered uhub2: 2 ports with 2 removable, self powered uhub3: 6 ports with 6 removable, self powered usb_alloc_device: set address 2 failed (USB_ERR_STALLED, ignored) Root mount waiting for: usbus3 usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_STALLED, ignored) Root mount waiting for: usbus3 Root mount waiting for: usbus3 usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_STALLED, ignored) Root mount waiting for: usbus3 ugen3.2: <Unknown> at usbus3 (disconnected) uhub_reattach_port: could not allocate new device Here's what shows up after boot: # usbconfig ugen0.1: <UHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE ugen1.1: <UHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE ugen2.1: <UHCI root HUB Intel> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE ugen3.1: <EHCI root HUB Intel> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE If I remove/re-add these devices at will, they do generate USB traffic visible to the machine. This part appears again on console/dmesg: uhub_reattach_port: could not allocate new device usb_alloc_device: set address 2 failed (USB_ERR_STALLED, ignored) usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_STALLED, ignored) usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_STALLED, ignored) ugen3.2: <Unknown> at usbus3 (disconnected) uhub_reattach_port: could not allocate new device Here is what usbdump shows: # usbdump -i usbus3 21:59:13.737075 usbus3.2 SUBM-CTRL-EP=00000000,SPD=HIGH,NFR=1,SLEN=8,IVAL=0 21:59:13.737238 usbus3.2 DONE-CTRL-EP=00000000,SPD=HIGH,NFR=1,SLEN=0,IVAL=0,ERR=STALLED 21:59:13.749995 usbus3.2 SUBM-CTRL-EP=00000080,SPD=HIGH,NFR=2,SLEN=8,IVAL=0 21:59:13.750109 usbus3.2 DONE-CTRL-EP=00000080,SPD=HIGH,NFR=1,SLEN=0,IVAL=0,ERR=STALLED 21:59:13.950535 usbus3.2 SUBM-CTRL-EP=00000080,SPD=HIGH,NFR=2,SLEN=8,IVAL=0 21:59:13.950607 usbus3.2 DONE-CTRL-EP=00000080,SPD=HIGH,NFR=1,SLEN=0,IVAL=0,ERR=STALLED (repeats a bunch more times -- total of 27 pairs, 54 packets) With more verbosity for the above, they each look like this: # usbdump -vvvv -i usbus3 22:01:23.705347 usbus3.2 SUBM-CTRL-EP=00000000,SPD=HIGH,NFR=1,SLEN=8,IVAL=0 frame[0] WRITE 8 bytes 0000 00 05 02 00 00 00 00 00 -- -- -- -- -- -- -- -- |........ | flags 0x50 <PROXY_BUFFER|MANUAL_STATUS|0> status 0xea3a3 <OPEN|TRANSFERRING|STARTED|CONTROL_XFR|CONTROL_HDR|CONTROL_ACT|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0> 22:01:23.705461 usbus3.2 DONE-CTRL-EP=00000000,SPD=HIGH,NFR=1,SLEN=0,IVAL=0,ERR=STALLED frame[0] WRITE 0 bytes flags 0x50 <PROXY_BUFFER|MANUAL_STATUS|0> status 0xca1a1 <OPEN|STARTED|CONTROL_XFR|CONTROL_HDR|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0> My focus is on getting the keyboard to work. To that and, here's the kernel config I'm using: include GENERIC nodevice umass nodevice ums nodevice ugen nodevice uhid nodevice ulpt nodevice ural nodevice urio nodevice uscanner nodevice aue nodevice axe nodevice cdce nodevice cue nodevice kue nodevice rue How can I help debug this in more detail? Thanks! _______________________________________________ freebsd-usb@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-usb To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"