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.

MCU-PLUS-SDK-AM243X: AM2432: Lwip concatenated pbuf isn't trasmitted complete

Part Number: MCU-PLUS-SDK-AM243X
Other Parts Discussed in Thread: AM2432

I am working on AM2432 with SDK mcu_plus_sdk_am243x_08_05_00_24 on a custom board

I am trying to fix a problem with a simple TFTP server.

The issue arises from UDP traffic, when the server receives a request on UDP port 69 and it replies to client port from a UDP port different than 69.

The ACK message should include only 4 bytes with ACK opcode and block number 0 but the server will deliver a reply with UDP header correct and with UDP payload only zeros.

I have tested that the pointer to a static buffer passed to lwip_sendto is properly filled.

Digging into the LwIP code I have seen that a pbuf is allocated for my 4 bytes and then another pbuf is allocated and concatenated to add UDP header.

Apparently it seams that DMA is transferring just the pbuf with UDP header, discarding the concatenated pbuf ( I suppose ... ).

This doesn't happend with previous SDKs 08.04.00.17 and 08.03.00.18

The TFTP client I am using is: https://tftpd64.software.informer.com/download/

My example code is posted on github: https://github.com/atessadri/lwip_cpsw_example

Here is the screenshot of the TFTPClient interface where I set the transfer of a plain text file:

Here is wireshark screenshot for the TFTP write request from the TFTP client:

Here is the reply from the boiard to the TFTP client: