iMXRT 1170 Slow Gigabit Ethernet

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

iMXRT 1170 Slow Gigabit Ethernet

2,503 Views
jma1009
Contributor I

On 1170 EVK, the result of evkmimxrt1170_lwip_iperf_bm_cm7 (tcp rx test) is just  about 127 Mbits/sec.  We have a custom i.MXRT1170 board with different phy.  The result of iperf is about 190 Mbits/sec.  I tried to config tx/rx delay but it doesn't improve the performance.  The bandwidth is lower than what we expect.

What is the cause of it?   Any idea would be very appreciated.

Tags (2)
0 Kudos
Reply
6 Replies

2,460 Views
jma1009
Contributor I

I am using SDK2.12 with iperf2.

I changed the setting to run the app in SRAM.  The bandwidth result was improved a lot (~550M bps).  Thanks for your advice.  I will try to setup the test with direct connection.

0 Kudos
Reply

2,485 Views
Omar_Anguiano
NXP TechSupport
NXP TechSupport

Hello
Hope you are well.

Our test show, that for 100M ENET, the iperf performance result can be up to 94Mbps, and for 1G ENET it can reach up to 912M bps.
Which SDK version are you using? Did you make a modification to iperf example?

Moving the code to internal SRAM could improve significantly the performance.
Also, the equipment used to make this test could influence measurements. It is important to make sure that the board is directly connected to the PC.

If you have more questions do not hesitate to ask me.
Best regards,
Omar

0 Kudos
Reply

2,359 Views
ombra32
Contributor III

hi, some news?

best regards

0 Kudos
Reply

2,447 Views
ombra32
Contributor III

Hi,
I'm in the same situation: too slow gigabit ethernet speed

This is my setup:
PC: Windows 10 Pro on Intel i7-10700 2.9GHz CPU, 16GB RAM and 4-port Broadcom NetXtreme Gigabit Ethernet interface
Board:
MIMXRT1170-EVK, directly connected to PC
IDE: MCUXpresso 11.6.0
SDK: SDK_2_12_0_MIMXRT1176xxxxx
SDK example: evkmimxrt1170_lwip_iperf_bm_cm7
Build config: Release
EVB mode selected: 2: TCP client mode (TX test)
Iperf command used: .\iperf-2.1.8-win.exe -s

The max speed accomplished between 2 identical PCs is 950Mbps.
Using the example as provided in the SDK (code in XIP flash and data in external SDRAM), the max speed achieved is only 220Mbps.
Changing the project settings to put code in SRAM_ITC and data, stack and heap in SRAM_DTC, the max speed reached is 420Mbps.
Using LIBC malloc instead of  LWIP one (MEM_LIBC_MALLOC = 1), the max speed obtained is 490Mbps.

It's very far from the 912Mbps stated in your previous post.
Can you attach here the example used in your tests?

Best regards,
Marco

0 Kudos
Reply

2,348 Views
Omar_Anguiano
NXP TechSupport
NXP TechSupport

Hello

The example used for these test were the lwip_iperf example from the SDK.

To experiment with the receive throughput, try to increase the number of receive buffers. For other platforms, where zero-copy on receive is implemented, it is determined by ENET_RXBUFF_NUM definition.
Also, increase the TCP receive window by changing TCP_WND definition in the file lwipopts.h or on command line.
Make sure that TCP_WND is not larger than (number of receive buffers / TCP_MSS). 

I suggest you open a different thread so we can support you there.
If you have more questions do not hesitate to ask me.
Best regards,
Omar

 

 

0 Kudos
Reply

2,342 Views
ombra32
Contributor III

I had already read the readme file inside the SDK lwip_iperf example, thanks.
But the example, as it is, don't reach the speed you stated.

Can you attach here the project you used to achieve 912Mbps in TX test, please?

 

Best regards,

Marco

0 Kudos
Reply