Hi,
thanks for your response. I repeated the measurements with the BSP and achieved the following results:
RX: 135 Mbit/s
TX: 364 Mbit/s
After that, I repeated the iperf measurements with our current 3.19-rc7 kernel and the results are similar: 136 Mbit/s RX, 397 Mbit/s TX
Bottom line: TX performance is OK and according to ERR004512 pretty close to the hardware limits. But what is the bottleneck for the RX performance and why does it max out at about 136 Mbit/s ?
2. We use newer kernel versions, so enable_wait_mode=off should not be necessary. (I tried it anyway, but it did not improve the situation)
3. Thank you. The KSZ9031 however has only a 25 MHz input and would then output the 125 MHz clock on the CLK_125_NDO pin, which should be connected to the ENET_REF_CLK, but due to the KSZ9031 erratum, which says that the CLK125_NDO signal has duty cycle variations on the falling edge, we can't use it for ENET_REF_CLK.
But they don't have to be synchronous, right? So it would be OK, to use two separate oscillators, one 25MHz oscillator for the KSZ9031 PHY and another one with 125MHz and frequency stability < 50ppm for the ENET_REF_CLK on the i.MX6?
Do you have an idea what/where the bottleneck for the 136 Mbit/s RX performance is?
I am also reading through the following blog post, looks like they were having similar problems: http://boundarydevices.com/i-mx6-ethernet/