Hi All,
I'm currently facing a strange Ethernet issue in Linux on a custom IMX6D board based on the sabresd reference design. The design uses an AR8031 PHY configured in RGMII mode , 1000-BaseX (with autonegotiation disabled, speed fixed to 1000Mbps,full duplex). I was able to get Ethernet working in U-boot (2019.04 fslc), in which I am able to ping and tftp Linux images onto the board. Once the board boots to Linux (4.14.117-fslc+g774f42075a4, initramfs image), I am able to bring up the interface (eth0) via ifconfig, talk to the AR8031 PHY via phytool (read and write to registers), but I am unable to ping (causes the board to hang).
The interface is "UP" and "RUNNING", the AR8031 PHY LED_LINK1000 and LED_ACT leds light up, and Linux appears to be incrementing the TX byte counter, but RX bytes stay at 0 (in which the RX crc error count is the same as the RX packet count according to ethtool). As for the TX packets, I have Wireshark on my test PC I am using as a tftp server to load Linux, and I do NOT see any TX packets coming through (I do see network activity on Wireshark during U-boot ping/tftp commands as expected ). Any clues as to what would be causing this problem? I've been stuck on this problem for quite sometime and would really appreciate some help.
Thank you,
Neil
Hi Neil
"fslc" community bsps are not supported by nxp, recommended to try
software from nxp official source.codeaurora.org/external/imx repository:
https://source.codeaurora.org/external/imx/linux-imx/tree/?h=imx_4.14.98_2.0.0_ga
https://source.codeaurora.org/external/imx/uboot-imx/tree/?h=imx_v2018.03_4.14.78_1.0.0_ga
Documentation
i.MX Software | NXP
also for 1000-Base autonegotiation is mandatory, it should not be disabled.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
I was able to solve the Ethernet issue. So using the 4.14.98 kernel image, I faced the same issue of not being able to ping using the appropriate PHY driver (AT803x driver). What fixed my issue was using the GENERIC_PHY driver instead of the AT803X. As per our hardware configuration, the link on the IMX6 has to be at a fixed speed of 1000Mbps, with auto-negotation off, and running in full duplex. So I made the appropriate additions to the GENERIC_PHY driver (drivers/net/phy/phy_device.c), and voila I can ping!
Thanks,
Neil