Hello,NXP experts
Hardware: refer to i.MX8MP-EVK except PHYs
Software : imx_5.4.70_2.3.0
In our custom i.MX8MP board, we use two ksz9131 phys to connect to ethernet fec(eth0) and eqos(eth1) respectively in our schematic. MAC and PHY are connected with RGMII (rgmii-id in dts).
Ethernet interface fec(eth0) works well at 10/100/1000M both auto-negotiate mode and force mode.
Ethernet interface eqos(eth1) also works well at 100/1000M both auto-negotiate mode and force mode, but fail to ping at 10M whether it is auto-negotiate mode or force mode, link can indicate normally at 10M.
Here are my tries:
1. Force eqos(eth1) interface to 10M
root@IMX8MP:~# ethtool -s eth1 speed 10 duplex full autoneg on
[ 493.950628] imx-dwmac 30bf0000.ethernet eth1: Link is Down
[ 497.570535] imx-dwmac 30bf0000.ethernet eth1: Link is Up - 10Mbps/Full - flow control rx/tx
2. Ping PC through eqos(eth1) interface
root@Router:~# ping -I 192.168.0.1 192.168.0.10
PING 192.168.0.10 (192.168.0.10) from 192.168.0.1 : 56(84) bytes of data.
From 192.168.0.1 icmp_seq=1 Destination Host Unreachable
From 192.168.0.1 icmp_seq=2 Destination Host Unreachable
From 192.168.0.1 icmp_seq=3 Destination Host Unreachable
From 192.168.0.1 icmp_seq=4 Destination Host Unreachable
Statistical data before and after this ping by 'ifconfig eth1', TX packets is increasing, RX packets remains unchanged.
And at PC end i can see ARP-Request broadcast from iMX8MP eqos(eth1) and ARP-Reply to i.MX8MP eqos(eth1) in Wireshark during ping.
3. Set eqos(eth1) interface to 10/100/1000M auto-negotiate mode and force PC end to 10M.
iMX8MP eqos(eth1) interface can link at 10M, but ping fail as step 2.
4. Modify operation mode of the PHY interface from rgmii-id to rgmii/rgmii-txid/rgmii-rxid doesn't make things better. Patch applied: https://git.toradex.com/cgit/linux-toradex.git/commit/drivers/net/phy/micrel.c?h=toradex_5.15-2.1.x-...
If there is anything else you want to know please let me know.
Any help are appreciated.
解決済! 解決策の投稿を見る。
It is because the KSZ9131 removes all 7 bytes of the preamble. Please contact the PHY chip's company for how to enable 10Base-T preamble on PHY ksz9131.
It is because the KSZ9131 removes all 7 bytes of the preamble. Please contact the PHY chip's company for how to enable 10Base-T preamble on PHY ksz9131.
Thank you for you reply,@jimmychan
We will check with PHY vendor.
Although eqos(eth1) +ksz9131 can not work at 10M, but ethernet interface fec(eth0) +ksz9131 works well at 10M speed.
Is it possible that the difference between eqos and fec caused this fail?
Yes. For the details, please read the i.MX 8M Plus Mask Set Errata for Mask 1P33A about the ERR050694.