[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200305225115.GC25183@lunn.ch>
Date: Thu, 5 Mar 2020 23:51:15 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Sriram Chadalavada <sriram.chadalavada@...dleap.ca>
Cc: netdev@...r.kernel.org
Subject: Re: Information on DSA driver initialization
On Thu, Mar 05, 2020 at 05:24:47PM -0500, Sriram Chadalavada wrote:
> Is there information in kernel documentation or elsewhere about DSA
> initialization process starting from the device tree parse to the
> Marvell switch being detected?
>
> The specific problem I'm facing is that while I see this:
> root@...ub:/# dmesg | grep igb
> [ 1.314324] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.4.0-k
> [ 1.314332] igb: Copyright (c) 2007-2014 Intel Corporation.
> [ 1.314679] igb 0000:03:00.0: enabling device (0140 -> 0142)
> [ 1.343926] igb 0000:03:00.0: added PHC on eth0
> [ 1.343938] igb 0000:03:00.0: Intel(R) Gigabit Ethernet Network Connection
> [ 1.343949] igb 0000:03:00.0: eth0: (PCIe:2.5Gb/s:Width x1) c4:48:38:00:63:eb
> [ 1.344019] igb 0000:03:00.0: eth0: PBA No: 000300-000
> [ 1.344030] igb 0000:03:00.0: Using MSI-X interrupts. 4 rx queue(s), 4
> tx queue(s)
> [ 1.344464] libphy: igb_enet_mii_bus: probed
>
> I do NOT see this in the log:
> [ 1.505474] libphy: mdiobus_find: mii bus [igb_enet_mii_bus] found
> [ 1.645075] igb 0000:03:00.0 eth0: [0]: detected a Marvell 88E6176 switch
> [ 24.341748] igb 0000:03:00.0 eth0: igb_enet_mii_probe starts
> [ 24.344928] igb 0000:03:00.0 eth0: igb: eth0 NIC Link is Up 1000 Mbps
> Full Duplex, Flow Control: RX/TX
>
> Any suggestions/speculations what may be going on here?
I think you have some patches applied here, because i don't think igb
supports linux mdio. It has its own implementation.
Assuming that is what you have, the probe of the switch normally fails
the first time. Generally, the mdio bus is registered before the
network interface. So when the switch tried to lookup the ethernet
interface, it does not exist. -EPROBE_DEFFER is returned. The core
will then try again, by which time the interfaces does exist.
You probably want to scatter some printk() in the code to see what is
happening.
Andrew
Powered by blists - more mailing lists