[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <DB6PR0401MB2264E670265792BB13257E57FF3B0@DB6PR0401MB2264.eurprd04.prod.outlook.com>
Date: Wed, 29 Nov 2017 01:38:21 +0000
From: Andy Duan <fugang.duan@....com>
To: Oliver Graute <oliver.graute@...il.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: RE: fec driver and two micrel phys
From: Oliver Graute <oliver.graute@...il.com> Sent: Tuesday, November 28, 2017 11:28 PM
>Hello list,
>
>I try to get two Micrel KSZ8041 Phys working with the fec driver from Kernel
>4.14. But it looks that something with the mii_bus probing is not working here.
>I expect the Phys on address 01 and 03. Currently on eth1 I see TX traffic but
>no RX. On eth0 there is neither nor. (ifconfig)
>
>[ 51.997034] Micrel KSZ8041 800f0000.ethernet-1:00: attached PHY driver
>[Micrel KSZ8041] (mii_bus:phy_addr=800f0000.ethernet-1:00, irq=POLL)
>[ 52.036719] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
>[ 52.621138] Micrel KSZ8041 800f0000.ethernet-1:01: attached PHY driver
>[Micrel KSZ8041] (mii_bus:phy_addr=800f0000.ethernet-1:01, irq=POLL)
>[ 52.649677] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
>[ 54.697479] fec 800f4000.ethernet eth1: Link is Up - 100Mbps/Full - flow
>control off
>[ 54.721424] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
>[ 59.860693] Micrel KSZ8041 800f0000.ethernet-1:00: attached PHY driver
>[Micrel KSZ8041] (mii_bus:phy_addr=800f0000.ethernet-1:00, irq=POLL)
>[ 59.874298] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
>[ 59.980688] Micrel KSZ8041 800f0000.ethernet-1:01: attached PHY driver
>[Micrel KSZ8041] (mii_bus:phy_addr=800f0000.ethernet-1:01, irq=POLL)
>[ 59.994289] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
>[ 62.025331] fec 800f4000.ethernet eth1: Link is Up - 100Mbps/Full - flow
>control off
>[ 62.044588] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
>
>
>On my old setup with an Kernel 4.2 the phys are working. But there I patched
>the phy_mask into the old fec code. Because I didn't know how to do it better
>by device tree.
>
>Can someone tell my how to do it right?
>
Firstly, the log show PHY link is not stable, and the auto-negotiation show flow control off. So pls add PHY reset.
Secondly, as Andrew said, pls list out your device tree, it is better to configure two phy node in device tree.
>
>+++ b/drivers/net/ethernet/freescale/fec_main.c
>@@ -1909,6 +1909,9 @@ static int fec_enet_mii_probe(struct net_device
>*ndev)
> fep->phy_dev = NULL;
>+ //FIXME: Has to come in via DT
>+ fep->mii_bus->phy_mask = 5;
>
>[ 2.857053] fec 800f0000.ethernet: failed to get phy-reset-gpios: -16
>[ 2.864190] fec 800f0000.ethernet (unnamed net_device) (uninitialized):
>Invalid MAC address: 00:00:00:00:00:00
>[ 2.874450] fec 800f0000.ethernet (unnamed net_device) (uninitialized):
>Using random MAC address: 4e:7f:b4:28:6d:a5
>[ 2.954844] libphy: fec_enet_mii_bus: probed
>[ 2.969254] fec 800f4000.ethernet (unnamed net_device) (uninitialized):
>Invalid MAC address: 00:00:00:00:00:00
>[ 2.979514] fec 800f4000.ethernet (unnamed net_device) (uninitialized):
>Using random MAC address: 3a:4a:96:7e:c2:02
>[ 41.430276] fec 800f0000.ethernet eth0: Freescale FEC PHY driver [Micrel
>KSZ8041] (mii_bus:phy_addr=800f0000.etherne:01, irq=-1)
>[ 42.062191] fec 800f4000.ethernet eth1: Freescale FEC PHY driver [Micrel
>KSZ8041] (mii_bus:phy_addr=800f0000.etherne:03, irq=-1)
>[ 43.430622] fec 800f0000.ethernet eth0: Link is Up - 100Mbps/Full - flow
>control off
>[ 48.245927] fec 800f0000.ethernet eth0: Freescale FEC PHY driver [Micrel
>KSZ8041] (mii_bus:phy_addr=800f0000.etherne:01, irq=-1)
>[ 50.246425] fec 800f0000.ethernet eth0: Link is Up - 100Mbps/Full - flow
>control off
>[ 112.254191] fec 800f0000.ethernet eth0: Link is Down [ 117.066479] fec
>800f4000.ethernet eth1: Link is Up - 100Mbps/Full - flow control off
>
>Best Regards,
>
>Oliver
Powered by blists - more mailing lists