From: Jian-Hong Pan <jhp@endlessos.org>
To: Doug Berger <opendmb@gmail.com>,
Florian Fainelli <f.fainelli@gmail.com>,
Stefan Wahren <stefan.wahren@i2se.com>
Cc: bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, linux@endlessos.org,
linux-rpi-kernel@lists.infradead.org,
Jian-Hong Pan <jhp@endlessos.org>
Subject: [PATCH] net: bcmgenet: Fix attaching to PYH failed on RPi 4B
Date: Mon, 21 Jun 2021 18:33:11 +0800 [thread overview]
Message-ID: <20210621103310.186334-1-jhp@endlessos.org> (raw)
The Broadcom UniMAC MDIO bus comes too late. So, GENET cannot find the
ethernet PHY on UniMAC MDIO bus. This leads GENET fail to attach the
PHY.
bcmgenet fd580000.ethernet: GENET 5.0 EPHY: 0x0000
...
could not attach to PHY
bcmgenet fd580000.ethernet eth0: failed to connect to PHY
uart-pl011 fe201000.serial: no DMA platform data
libphy: bcmgenet MII bus: probed
...
unimac-mdio unimac-mdio.-19: Broadcom UniMAC MDIO bus
This patch makes GENET try to connect the PHY up to 3 times. Also, waits
a while between each time for mdio-bcm-unimac module's loading and
probing.
Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=213485
Signed-off-by: Jian-Hong Pan <jhp@endlessos.org>
---
drivers/net/ethernet/broadcom/genet/bcmmii.c | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c
index 5335244e4577..64f244471fd3 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
@@ -289,6 +289,7 @@ int bcmgenet_mii_probe(struct net_device *dev)
struct phy_device *phydev;
u32 phy_flags = 0;
int ret;
+ int i;
/* Communicate the integrated PHY revision */
if (priv->internal_phy)
@@ -301,8 +302,22 @@ int bcmgenet_mii_probe(struct net_device *dev)
priv->old_pause = -1;
if (dn) {
- phydev = of_phy_connect(dev, priv->phy_dn, bcmgenet_mii_setup,
- phy_flags, priv->phy_interface);
+ /* Try to connect the PHY on UniMAC DMIO bus up to 3 times.
+ * Wait a while between each time for mdio-bcm-unimac module's
+ * loading and probing.
+ */
+ phydev = NULL;
+ for (i = 1; i < 4 && !phydev; i++) {
+ netdev_info(dev,
+ "connect %s on UniMAC MDIO bus %d time",
+ priv->phy_dn->full_name, i);
+ phydev = of_phy_connect(dev, priv->phy_dn,
+ bcmgenet_mii_setup,
+ phy_flags, priv->phy_interface);
+ if (!phydev && i < 3)
+ msleep(500);
+ }
+
if (!phydev) {
pr_err("could not attach to PHY\n");
return -ENODEV;
--
2.32.0
next reply other threads:[~2021-06-21 10:35 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-21 10:33 Jian-Hong Pan [this message]
2021-06-21 13:09 ` [PATCH] net: bcmgenet: Fix attaching to PYH failed on RPi 4B Andrew Lunn
2021-06-21 16:37 ` Florian Fainelli
2021-06-21 16:47 ` Florian Fainelli
2021-06-21 16:56 ` Peter Robinson
2021-06-21 20:15 ` Stefan Wahren
2021-06-21 21:47 ` Florian Fainelli
2021-06-22 6:29 ` Jian-Hong Pan
2021-06-22 6:50 ` Heiner Kallweit
2021-06-22 7:46 ` Jian-Hong Pan
2021-06-23 3:28 ` [PATCH v2] " Jian-Hong Pan
2021-06-23 4:00 ` Florian Fainelli
2021-06-23 20:50 ` patchwork-bot+netdevbpf
2021-06-23 21:19 ` Florian Fainelli
2021-06-24 2:47 ` Jian-Hong Pan
2021-06-24 3:27 ` Florian Fainelli
2021-06-24 3:28 ` Jian-Hong Pan
2021-06-24 3:22 ` [PATCH v3] net: bcmgenet: Add mdio-bcm-unimac soft dependency Jian-Hong Pan
2021-06-24 23:00 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210621103310.186334-1-jhp@endlessos.org \
--to=jhp@endlessos.org \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=f.fainelli@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rpi-kernel@lists.infradead.org \
--cc=linux@endlessos.org \
--cc=netdev@vger.kernel.org \
--cc=opendmb@gmail.com \
--cc=stefan.wahren@i2se.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.