AnsweredAssumed Answered

RMII interface on  i.mx6 Solo 

Question asked by Alex Berenshtein on Nov 13, 2016
Latest reply on Nov 15, 2016 by igorpadykov

We use i.mx6 - Solo. We changed interface from RGMII to RMII. We use Marvell 88E6020 ,  have 2 steps.

 

1. In U-Boot:

MX6_PAD_ENET_MDIO__ENET_MDIO|MUX_PAD_CTRL(ENET_PAD_CTRL) , MX6_PAD_ENET_MDC__ENET_MDC|MUX_PAD_CTRL(ENET_PAD_CTRL) , MX6_PAD_ENET_CRS_DV__ENET_RX_EN|MUX_PAD_CTRL(ENET_PAD_CTRL) , MX6_PAD_ENET_RX_ER__ENET_RX_ER|MUX_PAD_CTRL(ENET_PAD_CTRL) , MX6_PAD_ENET_TX_EN__ENET_TX_EN|MUX_PAD_CTRL(ENET_PAD_CTRL), MX6_PAD_ENET_RXD0__ENET_RX_DATA0|MUX_PAD_CTRL(ENET_PAD_CTRL) , MX6_PAD_ENET_RXD1__ENET_RX_DATA1|MUX_PAD_CTRL(ENET_PAD_CTRL) , MX6_PAD_ENET_TXD0__ENET_TX_DATA0|MUX_PAD_CTRL(ENET_PAD_CTRL) , MX6_PAD_ENET_TXD1__ENET_TX_DATA1|MUX_PAD_CTRL(ENET_PAD_CTRL) , MX6_PAD_GPIO_16__ENET_REF_CLK|MUX_PAD_CTRL(0x4001b0a8),

 

Working OK !!!!!!;

 

In kernel 4.1.15:
pinctrl_enet:

                enetgrp { fsl,pins =

< MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0

  MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0

 MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN

 0x1b0b0 MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER

 0x1b0b0 MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN

 0x1b0b0 MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0

 0x1b0b0 MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1

  0x1b0b0 MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0

 0x1b0b0 MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x1b0b0

  MX6QDL_PAD_GPIO_16__ENET_REF_CLK  0x4001b0a8 >;

};

 

pinctrl_enet_irq: enetirqgrp

 { fsl,pins = < MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x000b1 >; }

 

Clock we get from MARVELL (50Mgz).

#define  MX6QDL_PAD_GPIO_16__ENET_REF_CLK   0x214 0x5e4 0x80c 0x12 0x0

Clear Bit 21 -> IOMUXC_GPR1[21] , Clock from Marvell !!!

 

 regmap_update_bits(gpr, IOMUXC_GPR1,IMX6Q_GPR1_ENET_CLK_SEL_MASK,0);

But , we get a message:  fec 2188000.ethernet eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=2188000.ethernet:18, irq=-1) IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready done.

 


What a problem ?

Outcomes