No ethernet connectivity with iMX6 Solo processor using linux-imx kernel 6.1.55-2.2.1

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

No ethernet connectivity with iMX6 Solo processor using linux-imx kernel 6.1.55-2.2.1

961 Views
PDeBella
Contributor I

Hello,

I am in the process of updating one of our older i.MX6 Solo based products from an older 4.9.11 Linux kernel to a newer 6.1.55-2.2.1 Linux kernel (from linux-imx repository). So far I have been able to boot the device but we are having a problem with ethernet (FEC) connectivity. The FEC driver and Micrel 9031 PHY that we are using are recognized and loaded by the kernel but there is no network communication. The RJ45 network jack has its LEDs blinking normally but there is no data (other than ARP requests) going through the interface. I found that if I add a fixed-link property (see below) to the device tree then I are able to get data in and out of the ethernet port and can ping. The problem is that we can’t have the port fixed at a particular speed as we need to be able to support both 100 Mbps and 1000 Mbps. I would appreciate any help.

Here are snippets from our device tree that are relevant to the ethernet FEC. It works with the fixed-link node and if we remove the fixed-link node we get nothing out of the ethernet port.

Top-level DTS file snippet:

[...]

/dts-v1/;
#include "imx6dl.dtsi"
#include "ourcustom.dtsi"
 
/ {
model = "Our Custom Device";
compatible = "fsl,imx6dl-sabrelite", "fsl,imx6dl";
};
 

[...]

DTSI file ourcustom.dtsi snippet:

[…]

&fec {

               phy-mode = "rgmii";

               status = "okay";

               fixed-link {

                              speed = <1000>;

                              full-duplex;

               };

};

[…]

Thanks,

Patrick

3 Replies

220 Views
daveth-ah
Contributor I

Can confirm I'm having the same issues using linux-imx branch imx_5.4.70_2.3.0

The FEC claims to be UP and working, I can check the PHY status using phytool, but the device can't be pinged and cannot ping outward either.

Unsure how to debug this further.

0 Kudos
Reply

187 Views
daveth-ah
Contributor I

I've got things working now, so posting this in case anyone else runs into the same issue upgrading from linux-imx 4.1.15 to a later version.

The board I'm using is loosely based off a wandboard, and was using an AT8031 PHY. It seems that the AT803X PHY driver was changed to always reset RX/TX delay bits in the PHY when it is initialised, overwriting anything set earlier e.g. by U-Boot.

Resolved by setting the FEC's "phy-mode" = "rgmii-id" in my device tree, and configuring the appropriate delays. Previously I was using "rgmii", which would not have touched any RX/TX delay settings.

0 Kudos
Reply

925 Views
AldoG
NXP TechSupport
NXP TechSupport

Hello,

This bindings seems to be valid, and you should be able to select the speed as well, so I see no problems with using it.

https://github.com/nxp-imx/linux-imx/blob/lf-6.6.y/Documentation/devicetree/bindings/net/ethernet-co...

Best regards/Saludos,
Aldo.

0 Kudos
Reply