
Dear Stefano Babic,
Hi Marek,
On 13/10/2013 17:20, Marek Vasut wrote:
Do not reconfigure the FEC clock during board_eth_init(), otherwise the FEC might have stability issues, refuse to autonegotiate link entirely or even corrupt packets while indicating correct checksum on them. Instead, move the FEC clock init to board_early_init_f(), where all the other upstream clock are initialized and also make sure there is proper stabilization delay.
However, it seems to me that moving the code remove the problem on the mx28evk without finding the cause. Really there is still a big chunk of time between the initialization of the clock and the first packet is sent to the network, when the autonegotiation should occur.
Forget this, the issue is still present. Damn!
It's at least a little clearer to me what happens now. The FEC fails to transmit an TFTP block ACK packet -> the server waits 5 seconds -> sends ARP packet -> FEC replies and resends the TFTP block ACK again. Why does the FEC swallow a TX packet, I don't know.
Best regards, Marek Vasut