David -

I finally got back to the RNDIS problem we were having with our board (PPC
with net2280).  The problem was actually in net2280.c little endian
conversion of the last n bytes (less than 4) in read_fifo.  We are still
running the net2280 in PIO mode.  I spent a lot of time trying to get dma
operational without success.  The problem is with the OUT endpoint (DMA
direction device to cpu).  The descriptor and chip setup looks good, but
after stopping the host NAKing, the whole system freezes (what I assume is
the device corrupting kernel memory).  The IN endpoint (DMA direction cpu to
device) works fine in DMA mode.  My guess is this is a synchronization issue
(our cpu is the IBM405GPr which has a non-coherent cache).  For now, we have
decided to just use PIO mode.  I tested both full and high speed on Win2K
and Win XP platforms with satisfactory results.

diff -purN a/net2280.c b/net2280.c
--- a/net2280.c 2004-08-02 10:13:13.000000000 -0700
+++ b/net2280.c 2004-08-02 10:17:25.000000000 -0700
@@ -678,7 +678,7 @@ read_fifo (struct net2280_ep *ep, struct
        }
        if (count) {
                tmp = readl (&regs->ep_data);
-               cpu_to_le32s (&tmp);
+               /* LE conversion is implied in the following */
                do {
                        *buf++ = (u8) tmp;
                        tmp >>= 8;


Best regards,

Jon Neal
Ballard Technology, Inc.
http://www.ballardtech.com



-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to