I am using the MicroZed 7020 running Petalinux in a project and when the board is booted with the network cable plugged in everything is working and the system seems to be 100 % stable ( running for weeks with no issues).
However, if the board is booted with the network cable unplugged it looses the ability to use 10/100 Mbit ethernet when the ethernet cable is plugged in again, gigabit ethernet however is working fine but I need to get 100 Mbit interface to work as all switches in our system are 100 Mbit.
I've tried enabling and disabling eth0 using:
ifconfig eth0 down/up
ifdown eth0/ifup eth0
ip link set eth0 down/up
without any success. A link status is printed to the console on every up command:
xemacps e000b000.ethernet: Set clk to 25000000 Hz
xemacps e000b000.ethernet: link up (100/FULL)
So it is able to detect the network interface with the correct speed.
It also seems to be able to receive since pinging it from my computer causes the RX packets counter in ifconfig to count up ( probably only the broadcasted ARP requests ).
I'm using the official petalinux BSPs for the Microzed 7020, and I've tried it on petalinux 2014.2, 2014.4 and 2015.2 with the same negative results.
Any ideas on how to solve this issue?