No RX i.MX6 RGMII Fixed Link

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

No RX i.MX6 RGMII Fixed Link

1,114 Views
testbed
Contributor III

Hello,

We have made a custom i.MX6 board based on i.MX6 Dual-Lite to which we have connected a switch over the ENET interface as RGMII operating at 100Mbps. The switch - imx interface is a MAC-MAC and configured as fixed-link in the linux kernel. (No PHYs). The delays on the clock lines are provided internally by the switch (81 degrees phase shifted delay). 125 MHz external XTAL oscillator for ENET_REF_CLK.

 

What i observed is that packets are getting transmitted from imx and being correctly received at the destination, but for RX there are no packets being received on imx even though all the RGMII signals are toggling and the clock is stable. ethtool reports 0 packets received, 0 frames received, 0 rx errors. Diving deeper using devmem2 i found that the ECR[ETHEREN] bit is 0, which means MAC RX is stopped and TX continues to run until CRC error. In dmesg i see that the fixed-link state is up with 100Mbps speed.

Are there any specific config settings / patch i am missing to enable RX ? Kernel version 4.14.98

Pin setup (MDIO pins are un-connected)

pinctrl_enet: enetgrp {
fsl,pins = <
MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0
MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0
MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0
MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0
MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0
MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0
MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1f0b1 /* RGMII PHY reset */
>;
};

 

imx6qdl.dtsi

fec: ethernet@02188000 {
compatible = "fsl,imx6q-fec";
reg = <0x02188000 0x4000>;
interrupts-extended =
<&gpc 0 118 IRQ_TYPE_LEVEL_HIGH>,
<&gpc 0 119 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX6QDL_CLK_ENET>,
<&clks IMX6QDL_CLK_ENET>,
<&clks IMX6QDL_CLK_ENET_REF>;
clock-names = "ipg", "ahb", "ptp";
stop-mode = <&gpr 0x34 27>;
fsl,wakeup_irq = <0>;

local-mac-address = [00 0a 35 00 00 01];

phy-connection-type = "rgmii";
status = "okay";

fixed-link {

speed = <100>;

full-duplex;

};

};

Thanks

 

0 Kudos
0 Replies