C6678 EMAC example – how can I increase the packet send & receive rates?


I used the EMAC example (PA_emacExample_exampleProjec) as a basis to application that send & receive packets from the EVM board to an external PC.

The application is working fine, but the performance is very poor… the packet send & receive rates are very low (less than 100 packets per second).


I am getting this message: “No Tx free descriptor” although I increased the number of descriptors significantly.


I found that the problem is maybe related to the SGMII configuration. When I configure port 1 (Init_SGMII function) similar to the loopback configuration in the  EMAC example , the packets send rate is good (of course the packets are not arriving to the external PC).


What can be the cause of this performance degradation?



3 Replies

  • In reply to Yatsir Shmueli:

    DO you have the setup in a local network. If you have a lot of traffic in the network, that might slow the performance.



    If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.

  • In reply to ArunMani:


    The C6678 EVM  is connected to 2 CPU through network switch, and all the packets/data in the network are sending from the EVM or to the EVM - but in very low rates.

    The performance is poor even if I’m disconnecting the network cable to the EVM (in transmit from EVM mode).


    I think that something in my configuration is wrong… but it’s based on the EMAC example (PA_emacExample_exampleProjec).


    I’m seeing the same behavior in the EMAC example:

    When I’m changing the MAX_NUM_PACKETS define to:

    #define                     MAX_NUM_PACKETS                         10000u

    and configure the SGMII (in “Init_SGMII” function) to:

    CSL_SGMII_disableMasterMode (macPortNum);

    // CSL_SGMII_enableLoopback (macPortNum);