Re: CPPI DMA RNDIS mode support

David Brownell <[email protected]>
Newsgroups gmane.linux.usb.devel
Message-ID <[email protected]>
On Saturday 28 April 2007, Meher wrote:
> Hi,
>    I am working on developing USB drivers for a custom hardware
> interfacing with Davinci. I would like to know issues in using RNDIS
> mode for DMA with Davinci.

There's a summary of those issues in the driver source.  Note that
this is a case where public vendor documentation isn't much help
(among other things it's incomplete, plus there are inaccuracies),
and that's compounded by the fact that CPPI DMA seems to have been
designed without any reference to what USB needs (it was originally
for Ethernet I think), then glued onto that USB controller without
updating enough to make up for those initial oversights.


> I want to avoid IRQ-per-packet and use RNDIS to transfer data. I am
> going through cppi-dma.c form the davinci 2.6.20 git tree and I have
> seen comments suggesting that CPPI-RX is working as expected and as of
> now IRQ-per-packet is the way to go. Is my understanding correct?

There may be some issues on the host side with DMA, mostly because
the host side got significantly reworked (so both the RX and TX
sides of each endpoint could be used, vs. just one side), but other
than such concerns, that understanding should be correct.

"IRQ per packet" is sort of a misnomer; the issue is that in most
the CPII RX DMA descriptor queues are unusable in pretty much all
cases on the host side.  (The single exception is usb-storage.)


> Can any one give me a scenario where the RNDIS mode is failing?

The comments about the RX side DMA handling give examples.
See the comment headed "CPPI RX Woes".


> Does it  work properly during TX?

The comments in that driver source file certainly explain how
the TX side more or less works in "RNDIS mode", except for the
case of sending a zero-length-packet (which seemed racey).

- Dave

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.