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.

AM3703 - DMA usage in network driver

I found in http://processors.wiki.ti.com/index.php/UserGuideEthernetDriver_PSP_04.02.00.07  a hint how to use DMA in network.

Since I use an older (2.6.33) mainline kernel - do I have a chance to compile and use this too? (I am using patches which does it make hard to upgrade)

I found that with these settings

CONFIG_TI_DAVINCI_EMAC=y
CONFIG_TI_DAVINCI_MDIO=y
CONFIG_TI_DAVINCI_CPDMA=y

3 files are aditionally compiled:

davinci_emac.o
davinci_mdio.o
davinci_cpdma.o

But how do they work together with the other system? What else do I need, so that ethernet uses DMA for data transfer?

  • Hi Steffen,

    I will forward this to the Ethernet experts.

  • The kernel config settings you found are for the AM35x which has a native EMAC in the silicon. These settings will not work for the AM37x. With the AM37x an external EMAC/PHY is required, hopefully there is an open source driver for external devices is available. 

    While EMAC DMA capability was not supported on the TI released PSP on AM37x that does not mean it does not exist somewhere else in the Linux community.

  • Thanks for answer. You are right in my case the  AM37xx is connected to an SMSC911x.  I can observer high CPU load during network transfer - so I am wondering, whether a missing DMA support might be the reason.

    I am a bit confused by second part about "support of EMAC DMA by community". If there is no EMAC inside, it can't be supported - or did I misunderstand this?

    I would assume for DMA there is a general setting of the kernel and not part of the SMSC network driver. To ask more in detail:

    Is there a global DMA setting (and which one is it) or do it need some extra effort to use DMA for network operations? From my understanding ethernet is just a device at GPMC.

  • >  just bring topic back to focus <