Hi TI Folks,
On our current TI c64x based product we make use of the EDMA engine to send packets of the DSP. The packets for multiple channels are stored in buffers in external memory and then each of these buffers is sent out one at a time with a DMA wait before the next EDMA send happens if the previous EDMA has not completed sending the packet out from the DSP to an FPGA. These buffers are setup at initialization and are used by each channel for the duration of the time the DSP is running. Going forward to our new product and having these packets sent out through the TX queues using the PKTDMA to the Ethernet switch etc, I see one design issue. I would like to have this buffers fixed per Channel for the duration and so I could grab at initialization a TX buffer descriptors (by popping them of the TX Free Queue) and buffers to hold the Ethernet packet have those pushed onto the TX queue and have them sent to another core or out through the DSP switch. However, when the sending is complete then I do not want them popped back to the TXFreeQueue as I want the buffers to physically be at the same location for subsequnet use by that channel. Can I do that? This avoids transferring these packet buffers from DDR3 for each channel making use of the EMDA engine to a set of TX descriptors/TX buffers that can be used for sending packets out the chip and then pushing the descriptors to the TX queue for sending via the PKTDMA engine.
Any thoughts.
Thanks, Aamir