AnsweredAssumed Answered

RMII interface on i.MX6 Solo

Question asked by Oliver Kuo on Aug 11, 2013
Latest reply on Oct 2, 2014 by Tyler Sheffield

Hi all,

 

We connect an external PHY (Micrel KSZ8031RNL) through RMII interface to imx6 Solo, when I try to ping a peer under uboot, no packet is sent even the TX buffer has been updated.

 

I find below workaround for similar issue on MCF5275 (MAC 10/100 Mb), is it possible happened on iMX6 Solo RMII interface? Because TDAR never be cleared.

/* FEC fix for MCF5275, FEC unable to initial transmit data packet.
* A nop will ensure the descriptor polling active completed.
*/
__asm__("nop");


My IOMUX setting:

iomux_v3_cfg_t enet_pads[] = {

  MX6DL_PAD_CSI0_DAT11__GPIO_5_29,     /* PHY reset */

  MX6DL_PAD_ENET_MDIO__ENET_MDIO,

  MX6DL_PAD_ENET_MDC__ENET_MDC,

  MX6DL_PAD_ENET_CRS_DV__ENET_RX_EN,

  MX6DL_PAD_ENET_REF_CLK__ENET_TX_CLK,

  MX6DL_PAD_ENET_RX_ER__ENET_RX_ER,

  MX6DL_PAD_ENET_RXD0__ENET_RDATA_0,

  MX6DL_PAD_ENET_RXD1__ENET_RDATA_1,

  MX6DL_PAD_ENET_TX_EN__ENET_TX_EN,

  MX6DL_PAD_ENET_TXD0__ENET_TDATA_0,

  MX6DL_PAD_ENET_TXD1__ENET_TDATA_1,

};

And change pad_ctrl to "MX6DL_ENET_PAD_CTRL".

 

The uboot log as below:

Using FEC0 device

TX timeout packet at 278245a0

mxc_fec.c[616] fec_send: cycles: 50000    status: 8c00  retry cnt: 0

=====

ievent       2188004 - 0

imask        2188008 - 0

r_des_active 2188010 - 1000000

x_des_active 2188014 - 1000000

ecntrl       2188024 - f0000102

mii_mframe   2188040 - 6006786d

mii_speed    2188044 - 1a

mii_ctrlstat 2188064 - c0000000

r_cntrl      2188084 - 5ee0104

x_cntrl      21880c4 - 4

padr_l       21880e4 - 10203

padr_u       21880e8 - 4058808

op_pause     21880ec - 10000

iadr_u       2188118 - 0

iadr_l       218811c - 0

gadr_u       2188120 - 0

gadr_l       2188124 - 0

x_wmrk       2188144 - 100

r_bound      218814c - 600

r_fstart     2188150 - 500

r_drng       2188180 - 27602a80

x_drng       2188184 - 27602ac0

r_bufsz      2188188 - 5f0

 

TX timeout packet at 278245a0

mxc_fec.c[616] fec_send: cycles: 50000    status: ac00  retry cnt: 0

=====

ievent       2188004 - 0

imask        2188008 - 0

r_des_active 2188010 - 1000000

x_des_active 2188014 - 1000000

ecntrl       2188024 - f0000102

mii_mframe   2188040 - 6006786d

mii_speed    2188044 - 1a

mii_ctrlstat 2188064 - c0000000

r_cntrl      2188084 - 5ee0104

x_cntrl      21880c4 - 4

padr_l       21880e4 - 10203

padr_u       21880e8 - 4058808

op_pause     21880ec - 10000

iadr_u       2188118 - 0

iadr_l       218811c - 0

gadr_u       2188120 - 0

gadr_l       2188124 - 0

x_wmrk       2188144 - 100

r_bound      218814c - 600

r_fstart     2188150 - 500

r_drng       2188180 - 27602a80

x_drng       2188184 - 27602ac0

r_bufsz      2188188 - 5f0


We can find MAC doesn't clean TDAR and process TX descriptor.


Thanks,

Oliver

Outcomes