Dear all,
I am setting up a bare-metal C application on MicroZed (Zynq 7010) using LwIP to receive data over gigabit ethernet (Enet 0) on the PS side.
Everything is working fine but the speed is approximately 10 times lower than expected.
Hardware: MicroZed (Zynq 7010)
SDK: SDK 2014.2
Hardware platform: MicroZed_hw_platform (predefined)
BSP: standalone 4.1
Application: LwIP Echo Server Template with the following lines commented out (to speed things up, no echo back)
/* echo back the payload */
/* in this case, we assume that the payload is < TCP_SND_BUF */
//if (tcp_sndbuf(tpcb) > p->len) {
// err = tcp_write(tpcb, p->payload, p->len, 1);
//} else
// xil_printf("no space in tcp_sndbuf
r");
Performance measurement: iperf -c 192.168.2.3 -p 7 -t 20 -i 2
Speed: ~50 Mbits/s
Control 1: The very same setup with FreeRTOS using LwIP socket API
Speed: ~500 Mbits/s
Control 2: Open Source Linux Ethernet Performance Test Tutorial from microzed.org
Speed: ~500 Mbits/s
Is there perhaps some hidden setting in the SDK or LwIP? I have already spent a lot of time trying to fix this and would appreciate any help!
Thanks,
Petr