Subject: uhid + pckbdc / uhci + EHCI / wscons on i915 and probably i925 chipsets
To: None <current-users@netbsd.org>
From: Chris Tribo <ctribo@dtcc.edu>
List: current-users
Date: 02/03/2005 18:24:05
I have a 915 board with no PS/2 ports and 4 uhci root hubs, latched to 
an EHCI USB 2 root hub.

Sometimes USB devices work, sometimes they don't and I have to ssh in 
and reboot. This doesn't quite make sense to me. USB Legacy emulation 
is enabled and cannot be disabled on this board. So if the usb ports 
don't work, shouldn't keystrokes be passed to the PS2 port address? Or 
is that once you reset the chip the BIOS doesn't do the shim for you 
anymore?

Sometimes I can plug a USB device in and it recognizes and works, 
unplug it, plug it back in into the same port and it isn't recognized. 
I try every other port, and it still isn't recognized on any port.

Sometimes I can plug a device in, unplug it, plug it in, unplug it, 
plug it in, nothing.

Sometimes if I plug it into port x and it's recognized, then I have to 
plug it into port y the next time I want to use it, and vice versa.

The kernel always registers disconnects and detaches everything 
correctly, but somewhere along the line it's missing attachment events. 
I disabled ehci with userconf and the behavior is the same.

Now for the weirder part, if I keep plugging things into different 
ports, and get lucky that one detects an attachment, all the other 
devices that I plugged in earlier that weren't detected suddenly show 
up.

I'm not convinced that this is necessarily an issue with the USB code 
here, does this sound like a threads problem? Even at boot some devices 
aren't detected when the kernel is starting. Does anyone else have a 
machine with 8 usb ports onboard that works right?

I try to start X with /dev/wsmouse and /dev/wskbd. The mouse works, the 
keyboard sometimes does not. syslog spools:

uhidev2: bad input length 4 != 0
wskbd1: disconnecting from wsdisplay0
wskbd1: event queue overflow
last message repeated 57 times

I don't know what's going on here, unless X is trying to directly probe 
the ps/2 legacy port, tells it to reset, which then kills the usb 
connection. I disabled pckbc in userconf and it hasn't happened again 
yet.