Skip site navigation (1)Skip section navigation (2)
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>