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 = <ðphy0>;
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.
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!
-----------------------------------------------------------------------------------------------------------------------
Thanks for the reply. It seems that net-pay-broadcom patches comments
is for BCM54612e, not for BCM54810...
it has the same codes:
reg &= ~MII_BCM54XX_AUXCTL_SHDWSEL_MISC_RGMII_SKEW_EN;
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)
please check with oscilloscope rgmii timings described in Table 60. RGMII Signal Switching Specifications