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 (®s->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