Date: Fri, 28 Mar 2003 11:16:55 -0800 From: Maksim Yevmenkin <myevmenk@exodus.net> To: ticso@cicely.de Cc: ticso@cicely9.cicely.de Subject: Re: Ax88172 vs FreeBSD USB stack Message-ID: <3E849FA7.1000400@exodus.net> References: <20030328183858.7B2DB37B401@hub.freebsd.org> <20030328185650.GK23168@cicely9.cicely.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Just FYI ng_ubt(4) (/sys/netgraph/bluetooth/drivers/ubt) driver (Bluetooth USB devices) makes use of two interfaces. thanks, max Bernd Walter wrote: > On Fri, Mar 28, 2003 at 10:38:58AM -0800, Bill Paul wrote: > >>So. I picked up a Linksys USB200M USB 2.0 ethernet adapter that uses >>the ASIX Electronics AX88172 chip, and I started cobbling together a >>driver. This chip uses a series of vendor specific commands to do >>things like read/write the MII management interface on the MAC, >>read/write the SROM, set the RX filter, multicast hash table, etc. >>I can do all this no problem. The Linksys NIC uses a RealTek 8201L >>PHY, and I can attach it and negotiate a link. >> >>However I can't send or receive any packets. >> >>Like all the other USB NICs, packet transfer is supposed to done >>via bulk in/bulk out endpoints, and I can open these endpoints >>and initiate transfers just fine, but nothing ever happens. Transmit >>attempts don't yield any packets on the wire, and I never get any >>RX transfer completions. (I can see the activity LED on the NIC >>blink when a frame arrives though.) One thing I have not attempted >>to do yet (but may try this weekend) is to directly read the RX or >>TX SRAM (there are commands to let you do this). >> >>Frankly, I'm a bit stumped. It looks as though I'm doing everything >>correctly, but I can't explain why the bulk transfers don't work. >>Clearly, the control endpoint works, since I can issue commands. There >>doesn't appear to be any special command that one has to issue to >>enable/disable the receiver or transmitter on the MAC. >> >>I have only one possible explanation. The manual for the AX88172 >>(http://www.freebsd.org/~wpaul/ASIX/Ax88172.PDF) says the following: >> >>"The AX88172 supports 2 interfaces, the interface 0 is Data Interface >>and interface 1 is for Communication interface." > > > If that is true - the device has a strange design. > Normaly devices use single interfaces with multiple commucations > channels. > An interface in USB wording is something like a virtual device - > similar to functions on pci. > E.g. you can have an umass device on interface 0 and a keyboard on > interface 1. > The FreeBSD USB stack supports mutltiple interfaces, but currently > doesn't support probing different drivers for different interfaces on > the same device. > > However you can try usbctl from usbutils to get an overview of the > device. > I have made a port, it is actually being reviewed by a port commiter, > which you can get on: http://www.cosmo-project.de/~bernd/usbutil.tgz > > >>However the USB stack disagrees with the manual on this point: it >>steadfastly insists that configuration 1 has only 1 interface. So >>my question, for any USB gurus out there, is: is it possible that >>the USB stack is wrong on this point, and I really need to be >>using interface 1 for bulk in/out transfers? I'm a little suspicious >>at this point, because the stack can't seem to even read the >>device ID string correctly. (It identifies the chip only as "vendor >>0x77b, device 0x2226".) > > > Strange - let us see what usbctl says - it never failed for me. > > BTW: I doubt that USB 1.x vs USB 2.0 make a difference in the problem > you are seeing, but in case you want to test later. > The EHCI patch is available under: > http://www.cosmo-project.de/~bernd/ehci.patch > It is currently not tested against any device, but the controller > probes fine and scanning the root hub (without devices) did not fail. >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3E849FA7.1000400>