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

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

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

945 Views
joe_culler
Contributor I

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.

Labels (2)
0 Kudos
5 Replies

789 Views
igorpadykov
NXP Employee
NXP Employee

Hi Joe

one can check with oscilloscope rgmii timings described in Table 60. RGMII Signal Switching Specifications

i.MX 6Solo/6DualLite Applications Processors for Consumer Products

Pay attention to net-phy-broadcom patches comments:

"This PHY has internal delays enabled after reset. This clears the
internal delay enables unless the interface specifically requests them."

[source] kernel: add linux 4.9 support 

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

0 Kudos

789 Views
joe_culler
Contributor I

Thanks for the reply.   It seems that net-pay-broadcom patches comments 

is for BCM54612e, not for BCM54810...

0 Kudos

789 Views
igorpadykov
NXP Employee
NXP Employee

it has the same codes:

reg &= ~MII_BCM54XX_AUXCTL_SHDWSEL_MISC_RGMII_SKEW_EN;
0 Kudos

789 Views
joe_culler
Contributor I

I added the code, but still no TX :(

$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr E2:FF:DE:19:79:E9
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2031 (1.9 KiB) TX bytes:0 (0.0 B)

0 Kudos

789 Views
igorpadykov
NXP Employee
NXP Employee

please check with oscilloscope rgmii timings described in Table 60. RGMII Signal Switching Specifications

0 Kudos