In general ethernet speed is decided by negotiation, but in my product I want to make imx8 board’s ethernet always work on 1Gbps speed, but I failed.
imx8 board connects my laptap directly. I run command:
root@apalis-imx8:~# ethtool -s eth0 speed 1000 duplex full autoneg off
root@apalis-imx8:~# [ 74.808484] fec 5b040000.ethernet eth0: Link is Down
then my laptop shows disconnection with imx8 board. then I run the following commands:
root@apalis-imx8:~# ifconfig eth0 down
[ 130.431701] fec 5b040000.ethernet eth0: MDIO write timeout
[ 130.471708] fec 5b040000.ethernet eth0: MDIO write timeout
[ 130.569709] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
root@apalis-imx8:~# ifconfig eth0 up
[ 136.753100] Micrel KSZ9031 Gigabit PHY 5b040000.ethernet-1:07: attached PHY driver [Micrel KSZ9031 Gigabit PHY] (mii_bus:phy_addr=5b040000.ethernet-1:07, irq=207)
[ 136.768686] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
however, I can set the speed 100Mbps:
root@apalis-imx8:~# ethtool -s eth0 speed 100 duplex full autoneg off
In addition, I set ethernet speed 1Gbps on my laptap, then imx8 board connects it by 1Gbps. I wonder why my laptap is ok, but imx8 is not ok.
so how can I fix my ethernet speed to 1Gbps on imx8 board, not peer side because I can not ask customer to change their network settings.