2024-11-21 09:04 AM
Hello:
I am debugging the network development of STM32MP135 bare metal, using the protocol stack LWIP+FreeRTOS, and I have implemented the LWIP transplantation of dual network ports under FreeRTOS, and can successfully PING the IP of the two network ports, but there is a problem when using iperf to test the speed, as follows: Because STM32MP135 supports dual Gigabit Ethernet, I use RGMII to connect two Gigabit PHY chips (YT8531) on my board (the development board here can refer to MYD-YF13X development board). Now when using iperf to test the speed of two Gigabit Ethernets, I find that the speed is very slow, only about 10Mbps as a server, and only 240Mbps as a client. The above results are the results after optimizing the relevant TCP parameters and DMA descriptors in the lwipopt.h file, and the Gigabit function cannot be achieved at all;
In addition, if the Gigabit PHY is forced to be used as a 100M PHY, PING can be successful, and the iperf speed test also has a speed of 95Mbps, which meets the 100M requirement;
ST officially has a STM32MP135F-DK development board with two 100M networks. I transplanted my own program into this development board, and the iperf speed test was also 95Mbps;
Recently, ST released the V1.2.0 version firmware package of STM32MP135. I followed the LWIP-related routines in it and transplanted it to my own Gigabit Ethernet development board. After testing, the iperf speed test was still around 10Mbps, far below the Gigabit level!
So, I would like to ask how to solve this bug. Is there any reference idea? If so, please tell me, I would be grateful! In addition, does Gigabit Ethernet need special configuration in the LWIP program of MCU? Compared with 100M Ethernet
Best wishes!