This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Using USB2.0 for high speed transfers between OMAP L-137 processors

Other Parts Discussed in Thread: DA8XX, OMAP-L137

We are chaining up to four OMAP-L137 EVM boards via USB hubs. We need one board (the master) to be able to communicate with the other three boards (slaves) with as high of throughput as possible. I used the CDC Ethernet drivers to try to achieve this but there are issues. First, I was able to get two boards communicating and I ran a throughput test by send ing UDP packets at the fastest rate possible. I was only able to achieve a rate of about 5MBps. This was disappointing since we were hoping for at least 20MBps. I noticed that there were some errors being reported from the USB Controller interrupt handler.  These messages were coming from  peripheral side in the musb driver code (file =   linux-2.6.18_pro500/drivers/usb/musb/da8xx.c, procedure = da8xx_interrupt). The errors reported were from the lines

if (ret != IRQ_HANDLED) {
  if (status)
   /*
    * We sometimes get unhandled IRQs in the peripheral
    * mode from EP0 and SOF...
    */
   ERR("Unhandled USB IRQ %08x\n", status);
  else if (printk_ratelimit())
   /*
    * We've seen series of spurious interrupts in the
    * peripheral mode after USB reset and then after some
    * time a real interrupt storm starting...
    */
   ERR("Spurious IRQ, CPPI 4.1 status %08x\n" , pend0);
 }

My second issue is that when I hooked more than two boards together i was only able to communicate between two. Does anyone know if the CDC Ethernet drivers only handle communication between two devices? I don't need the slaves to talk to each other...only the master to talk to up to three slaves.