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.

TMS570LC4357: The TMS570LC4357, when combined with the PHY DP83640, with the protocol stack being LWIP, can receive network packets and process them normally, but it cannot s

Part Number: TMS570LC4357
Other Parts Discussed in Thread: DP83640

The TMS570LC4357 is combined with the PHY DP83640, and the protocol stack is LWIP. It can receive network packets and process them normally, but it cannot send them out.
During the debugging process, no obvious abnormalities were found. When sending, the sending descriptor was written after TX0DP, and it was checked that the OWNER flag of the descriptor had been cleared and the EOQ flag had been set. However, the sent packets could not be captured on the network.
The hardware is in use. Could you please advise on how to troubleshoot the software issues? thank you

  • Hi,

    When the OWNER flag is cleared and the EOQ (End of Queue) flag is set, this indicates that the EMAC has processed the descriptor and reached the end of the descriptor queue. The key issue is that you need to manually restart the transmit queue by writing to the TXHDP register.

    When the EOQ flag is set in your transmit descriptor, the EMAC has reached the end of the descriptor chain and stops processing.

    Could you try this:

    // After writing descriptor to TX0DP, check completion
    if (descriptor->flags & EOQ_FLAG) {
        // Queue has stopped - must restart
        // Write the next descriptor address to TXHDP
        EMAC_REGS->TX0HDP = (uint32_t)next_descriptor;
    }

    --
    Thanks & regards,
    Jagadish.