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.

K2E NETCP TX issue

Hi Experts,

I'm developing the 1000M ethernet driver for an RTOS on K2E EVM board.

Receive is OK now, but there is one issue for transmitting.

After sending hundreds or thousands(the number is not certain) packets, most of the descriptors are stacked in the submit queue(Queue number is 896 in my case), several descriptors(typical values are 2~4) are leaked.

At this moment, the packet DMA seems to hang and doesn't process the buffers in submit queue any more.

My configuration is similar to U-BOOT.


I want to know the reason why the packet DMA doesn't process the buffers in the submit queue at the moment.

  • Hi,

    The PktDMA interface is an extension of the Linux DMA Engine subsystem. It is worth reviewing the following documentation found in the kernel source tree,
    Documentation/dmaengine.txt
    Documentation/devicetree/bindings/dma/keystone-pktdma.txt
    http://processors.wiki.ti.com/index.php/MCSDK_UG_Chapter_Exploring#Network_Driver
    http://processors.wiki.ti.com/index.php/TransportNetLib_UsersGuide
    http://processors.wiki.ti.com/index.php/TransportNetLib_TestUsersGuide

  • Thanks for the direction.

    I've investigated the materials, but not found clue for my issue.

  • Hi,

    The pktdma driver test code avilable at the latest MCSDK release for K2E board.
    C:\ti\pdk_keystone2_3_01_00_03\packages\exampleProjects\cppiK2EC66BiosTestProject
    Go through the CPPI(pktdma) design details at CPPI/QMSS Low Level Driver SDS document.
    C:\ti\pdk_keystone2_3_01_00_03\packages\ti\drv\cppi\docs\CPPI_QMSS_LLD_SDS.pdf
    Your issue may be related with not proper initialization of CPPI and QMSS. Did you follow any reference code/project for your modification?

  • Thank you for the helpful reply.

    Since we just had a 7-day holiday, so give my respond late.

    I took the u-boot code as my reference.

    I'll look at the documents previously mentioned and tuned it later.