AnsweredAssumed Answered

IMX6DL doesn't work (tx) with BCM54810 phy on Linux

Question asked by Joe Culler on Mar 30, 2020
Latest reply on Mar 31, 2020 by igorpadykov

I can attach bcm54810 phy with fec, using ifconfig eth0, tx doesn't work.

dmesg:
Broadcom BCM54810 2188000.ethernet-1:00: attached PHY driver [Broadcom BCM54810]
(mii_bus:phy_addr=2188000.ethernet-1:00, irq=-1)
fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

Here is the output of ifconfig after trying to get ip address from dhcp server:

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr EE:BD:A9:8F:9A:7E
         inet6 addr: fe80::ecbd:a9ff:fe8f:9a7e/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:12983 errors:21 dropped:727 overruns:0 frame:21
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:9344610 (8.9 MiB)  TX bytes:0 (0.0 B)

Here is my Linux .dts file related contents:

&fec {
       pinctrl-names = "default";
       phy-handle = <&ethphy0>;
       pinctrl-0 = <&pinctrl_enet>;
       phy-mode = "rgmii";
       status = "okay";

       mdio {
               #address-cells = <1>;
               #size-cells = <0>;

               ethphy0: ethernet-phy@0 {
                       reg = <0>;
               };
       };
};

pinctrl_enet: enetgrp {
       fsl,pins = <
               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
               MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
               MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
               MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0

       >;
};

 

Anyone have any suggestions on what might be wrong or what next to check to
get Ethernet working in Linux? Thanks.

Outcomes