On Wednesday 21 March 2007 12:38 pm, Etienne Gauthier wrote:
> I'm not sure if it is an hardware limitation since the sprue35.pdf
> document(TMS320DM644x DMSoC Universal Serial Bus (USB)Controller User's
> guide) says:
> 
> The USB has the following features:
> ยท Supports 4 simultaneous RX and TX endpoints, more can be supported by
>   dynamically switching.

Exactly.  The hardware limitation is that, unlike for example
the EHCI host controller on your PC, the switching must be done
in software.  It's "usually" done in hardware.  The USB-OTG
controller design in DaVinci is seriously cost-reduced, and
pushing that into software was probably a big win in terms of
gates and testability.


The software fix/workaround would be noticing that (a) the device
has NAKed enough to trigger a fault, either (a1) interrupt mode for
mouse/keyboard/hub/etc, a single NAK suffices, or (a2) bulk mode
for the network adapters, where a larger limit applies; and also
(b) that a transfer for another peripheral endpoint is blocked.

Then after noticing (a) and (b), the software fixes involves a
clean shutdown of that transfer, and then moving that transfer
to the end of the queue, so that the next transfer can take a
whack at succeeding.

Also, the (a1) case is quite complicated because there's also no
periodic scheduler.  Such a scheduler prevents overcommit of the
available bandwidth.  For high speed, such schedulers are quite
annoying to write ... since they have to handle the "transaction
translator" componentry in high speed hubs.


By the way, whoever said "only 2 devices supported" was wrong.
Any number of bulk-only devices can work, except that if they
don't respond immediately transfers, this issue kicks in.

- Dave


> On Wed, 2007-03-21 at 12:12 -0700, Kevin Hilman wrote:
> > On Mon, 2007-03-19 at 08:36 -0400, Etienne Gauthier wrote:
> > 
> > > I was wondering if anybody was able to plug 2 USB-Ethernet modules on
> > > the Davinci? I'm using the Montavista 2.6.10-mvl401 kernel.
> > 
> > This is a known problem with the current USB driver, and is not unique
> > to ethernet devices.  You'll have the same problem using a keyboard and
> > mouse together.
> > 
> > IIUC, this is a hardware limitation which does not yet have a software
> > workaround in the MUSB driver.   Patches welcome.  :)
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to