> 1. The way things are supposed to work, I think, is that you open > the control interface, interface 0, and query it for the interfaces > the particular device supports. Once you get a list of supported > interfaces, you can then open the specific endpoint units for those > devices using the open(2) call.
That's more or less what I was expecting. But where it goes wrong for me is that I don't know what I can open() to get, say, "interface 2 endpoint 3". I can get "endpoint 3" by opening /dev/ugen%d.03 for some suitable %d, but I don't know how/where to specify "endpoint 3". ugen does have an "interface" locator, but I've been unable to make that work. Without special kernel config, the device shows up as umodem0 at uhub8 port 2 configuration 1 interface 0 umodem0: Texas Instruments In-Circuit Debug Interface, rev 1.10/1.00, addr 3, iclass 2/2 umodem0: data interface 1, has no CM over data, has break umodem0: status change notification available ucom0 at umodem0 and if I configure ugen1 at uhub? port ? vendor 0x1cbe product 0x00fd flags 1 then it shows up as a ugen - that's the form in which I've had the most success so far, walking the interfaces and endpoints as the ugen(4) manpage sketches. But I have been unable to get a ugen to attach at interface 2. My latest attempt is ugen1 at uhub? port ? vendor 0x1cbe product 0x00fd configuration 1 interface 0 flags 1 ugen2 at uhub? port ? vendor 0x1cbe product 0x00fd configuration ? interface 2 flags 1 which attaches no ugens anywhere and still attaches umodem0 and ucom0 as above. > 2. If you're interested, I have a heavily re-worked ugen(4) driver > for NetBSD-5 which I've not yet ported to NetBSD-current which fixes > a number of issues with the ugen(4) driver. Well, unless it lets me get hold of interface 2 I doubt it will actually help much here, but it won't hurt to try. I'll ping you offlist. /~\ The ASCII Mouse \ / Ribbon Campaign X Against HTML mo...@rodents-montreal.org / \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B