About AR8035 PHY issuse

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

About AR8035 PHY issuse

3,370 Views
bordonkuo
Contributor II

Dear all

I use the AR8035 phy for imx6dl based on Android 6.0.1_2.0.1. But it always cannot working.

When I plug-in RJ45, I can show the information

root@sabresd_6dq:/ # ifconfig eth0 up
fec 2188000.ethernet eth0: Freescale FEC PHY driver [Atheros 8035 ethernet] (mii_bus:phy_addr=2188000.ethernet:01, irq=-1)
IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
root@sabresd_6dq:/ # fec 2188000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

It seems work. But when I use the ping command, it always show

root@sabresd_6dq:/ # ping 192.168.253.1
PING 192.168.253.1 (192.168.253.1) 56(84) bytes of data.
From 192.168.253.4: icmp_seq=1 Destination Host Unreachable
From 192.168.253.4: icmp_seq=2 Destination Host Unreachable
From 192.168.253.4: icmp_seq=3 Destination Host Unreachable
From 192.168.253.4: icmp_seq=4 Destination Host Unreachable
From 192.168.253.4: icmp_seq=5 Destination Host Unreachable

The connection LED always off

I modify dtsi file

        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
                /* AR8035 CLK_25M --> ENET_REF_CLK (V22) */
                /*
                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x0a0b1
                */

                MX6QDL_PAD_RGMII_RXC__RGMII_RXC        0x130b0
                MX6QDL_PAD_RGMII_RD0__RGMII_RD0        0x1b0b0
                MX6QDL_PAD_RGMII_RD1__RGMII_RD1        0x130b0
                MX6QDL_PAD_RGMII_RD2__RGMII_RD2        0x1b0b0
                MX6QDL_PAD_RGMII_RD3__RGMII_RD3        0x1b0b0
                MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL    0x130b0
                /*                
                MX6QDL_PAD_GPIO_16__ENET_REF_CLK    0xC0000000
                */
                /*
                 * As the RMII pins are also connected to RGMII
                 * so that an AR8030 can be placed, set these
                 * to high-z with the same pulls as above.
                 * Use the GPIO settings to avoid changing the
                 * input select registers.
                */
                //MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25      0x03000
                MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25            0x80000000
                MX6QDL_PAD_ENET_RXD0__GPIO1_IO27        0x03000
                MX6QDL_PAD_ENET_RXD1__GPIO1_IO26        0x03000
                MX6QDL_PAD_SD1_CMD__GPIO1_IO18             0x130b0
            >;
        };

        pinctrl_enet_irq: enetirqgrp {
            fsl,pins = <
                /* AR8035 interrupt */
                MX6QDL_PAD_SD1_DAT1__GPIO1_IO17        0x000b1
            >;
        };

I used the external clock 25MHz, but TX, RX clock always 0.

Thanks,

Labels (1)
0 Kudos
4 Replies

1,585 Views
igorpadykov
NXP Employee
NXP Employee

Hi bordon

what configuration is used on the case : rgmii, mii or rmii,

since from log: "fec 2188000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx"

it is used on rgmii mode, while rmii comments are used on dtsi file

Note RMII mode requires 50MHz, MII 25MHz according to

sect.4.11.5 Ethernet Controller (ENET) AC Electrical Specifications i.MX6DQ Datasheet

http://cache.freescale.com/files/32bit/doc/data_sheet/IMX6DQCEC.pdf

RMII usage is well described in documents included in MX6_enet_RMII.zip

https://community.nxp.com/thread/304346?commentID=331971#comment-331971    

May be recommended first to achieve correct operation in uboot, then in linux and only after

that in android.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,585 Views
bordonkuo
Contributor II

Yes, I used the RGMII interface.

I have question,

1) Do you have the circuit that use the AR8035 for IMX6DL ?

2) The TX/RX clock is always 0 ? Is it right ?

I do not use the generated clock from GPIO16. I used the external 25M clock for AR8035.

Thanks

0 Kudos

1,585 Views
igorpadykov
NXP Employee
NXP Employee

RGMII interface requires 125MHz, please check

https://community.nxp.com/message/377930 

0 Kudos

1,585 Views
bordonkuo
Contributor II

Dear all

Thanks for your answer quickly.

If I have the external reference clock 25MHz for RGMII, do I set MX6QDL_PAD_GPIO_16__ENET_REF_CLK for 125MHz  ?

The RX_CLK always off and TX_CLK always on. but not the clock. Do I need to set the register or ... that RX_CLK and TX_CLK have the clock

Thanks,

0 Kudos