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,
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!
-----------------------------------------------------------------------------------------------------------------------
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
RGMII interface requires 125MHz, please check
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,