Hello,
Is there any example or driver for data transfer over Ethernet using DMA for TM4C1294 Connected Launchpad?
Thanks.
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.
Hello,
Is there any example or driver for data transfer over Ethernet using DMA for TM4C1294 Connected Launchpad?
Thanks.
Hi Saleem,
EMAC_init() will call EMACSnow_init(). You shouldn't need to call EMACSnow_initDMADescriptors. There is table in your board file that is used by the NDK:
/*
* Required by the Networking Stack (NDK). This array must be NULL terminated.
* This can be removed if NDK is not used.
* Double curly braces are needed to avoid GCC bug #944572
* bugs.launchpad.net/.../944572
*/
NIMU_DEVICE_TABLE_ENTRY NIMUDeviceTable[2] = {
{
#if TI_EXAMPLES_PPP
/* Use PPP driver for PPP example only */
.init = USBSerialPPP_NIMUInit
#else
/* Default: use Ethernet driver */
.init = EMACSnow_NIMUInit
#endif
},
{NULL}
};
This is how the NDK will call EMACSnow_NIMUInit(), wihch initializes the DMA descriptors.
Best regards,
Janet
Hi Saleem,
Yes, it uses DMA. There are Tx and Rx descriptors that are chained up to the peripheral.
Best regards,
Janet
Hello Saleem, Janet,
I must clear confusion here if understood correctly the original question.
I believe what Saleem is looking for is DMA use in the NDK to copy data (Ethernet frame) from Ethernet driver to application space (from layer2 (MAC frame) to layer 7(application - buffer) )
What Janet has explained is internal CPSW/MAC DMA which copies ethernet frames from the IP FIFO to ethernet driver. The internal IP DMA uses Rx and Tx descriptors for getting details like address in memory etc.
Now to answer your question there is no support for using external DMA in the NDK for packet transfer and it relies on CPU copy.
Steven Connell can confirm if there are any plans in the future.