I have heavy ping lose rate on my STM32F107 board, with FreeRTOS+TCP

I think I have found the root cause. It is the DMA engine

Congratulations, I am glad that you found the problem.

Could you attach your current driver files to this post? Then I will try to merge them with the existing STM32F2/4/7 driver.

I hope you can understand what I want to say.

Sure I do

Hein,
Please check this.STM32F107_eth.zip (36.3 KB) .
There are some update for the stm32xxx_eth.c. Those changes are made during debug, and from ST cubemx.
I think there may be a problem with my change. The IP layer thinks the checksum passed, while for ARP packet, we didn’t calculate it by HW. So I rely on IP layer to handle the packet with possible checksum error.
BR
/Li

Good information thanks for sharing
vmware

Hein,

Were you able to complete the merge of the STM32F2/4/7 driver with the changes for the STM32F107?

Or is that still on the TODO list?

@Todd, indeed I merged all the individual F1, F2, F4, and F7 into a single STM32Fxx driver. Before I submit it as a PR, could you please try it on your STM32F107 board?

@sdcandy, have you had a chance to try this version of the driver on your STM32f207?

Here it is: STM32Fxx_merged.zip (41.9 KB)

PS. The official drivers for FreeRTOS+TCP can be found here, and here for IPv6/multi.

@htibosch - I haven’t done as much testing as I would like but so far there have been no issues.

Happy for you to submit it as a PR - if you want to put a “tested by” on it then please do.

-Andy.

@htibosch … Excellent news re: the code merge. We are in the process of getting a board so any testing can’t happen immediately. I’ll post an update once we do. I’ll guess that will be near the end of October which may be too late for you.