From: Sagar Shrikant Kadam <sagar.kadam@sifive.com> To: linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, robh+dt@kernel.org Cc: palmer@dabbelt.com, paul.walmsley@sifive.com, atish.patra@wdc.com, Sagar Shrikant Kadam <sagar.kadam@sifive.com> Subject: [PATCH v1 0/3] fix macb phy probe failure if phy-reset is not handled Date: Wed, 13 May 2020 06:56:58 -0700 [thread overview] Message-ID: <1589378222-15238-1-git-send-email-sagar.kadam@sifive.com> (raw) HiFive Unleashed is having VSC8541-01 ethernet phy device and requires a specific reset sequence of 0-1-0-1 in order to use it in unmanaged mode. This series addresses a corner case where phy reset is not handled by boot stages prior to linux. Somewhat similar unreliable phy probe failure was reported and discussed here [1]. The macb driver fails to detect the ethernet phy device if the bootloader doesn't provide a proper reset sequence to the phy device or the phy itself is in some invalid state. Currently, the FSBL is resetting the phy device, and so there is no issue observed in the linux network setup. The series is based on linux-5.7-rc5. Patch 1: Add the OUI to the phy dt node to fix issue of missing mdio device Patch 2 and 3: Resetting phy needs GPIO support so add to dt and defconfig. [1] https://lkml.org/lkml/2018/11/29/154 To reproduce the issue: 1. Comment out VSC8541 reset sequence in fsbl/main.c from within the freedom-u540-c000-bootloader. 2. Build and flash fsbl.bin to micro sdcard. Boot the board and bootlog will show network setup failure messages as: [ 1.069474] libphy: MACB_mii_bus: probed [ 1.073092] mdio_bus 10090000.ethernet-ffffffff: MDIO device at address 0 is missing ..... [ 1.979252] macb 10090000.ethernet eth0: Could not attach PHY (-19) 3. Now apply the series build, and boot kernel. 4. MACB and VSC8541 driver get successfully probed and the network is set without any failure. So irrespective of whether the prior stages handle the phy reset sequence, the probing is successful in both the cases of cold boot and warm boot. Change History: =============================== V1: -Ignore 4th patch as suggested and so removed it from the series. -Verified this series on 5.7-rc5. V0: Base RFC patch. Verified on 5.7-rc2 Sagar Shrikant Kadam (3): dts: phy: fix missing mdio device and probe failure of vsc8541-01 device dts: phy: add GPIO number and active state used for phy reset riscv: defconfig: enable gpio support for HiFive Unleashed arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts | 2 ++ arch/riscv/configs/defconfig | 2 ++ 2 files changed, 4 insertions(+) -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Sagar Shrikant Kadam <sagar.kadam@sifive.com> To: linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, robh+dt@kernel.org Cc: atish.patra@wdc.com, palmer@dabbelt.com, Sagar Shrikant Kadam <sagar.kadam@sifive.com>, paul.walmsley@sifive.com Subject: [PATCH v1 0/3] fix macb phy probe failure if phy-reset is not handled Date: Wed, 13 May 2020 06:56:58 -0700 [thread overview] Message-ID: <1589378222-15238-1-git-send-email-sagar.kadam@sifive.com> (raw) HiFive Unleashed is having VSC8541-01 ethernet phy device and requires a specific reset sequence of 0-1-0-1 in order to use it in unmanaged mode. This series addresses a corner case where phy reset is not handled by boot stages prior to linux. Somewhat similar unreliable phy probe failure was reported and discussed here [1]. The macb driver fails to detect the ethernet phy device if the bootloader doesn't provide a proper reset sequence to the phy device or the phy itself is in some invalid state. Currently, the FSBL is resetting the phy device, and so there is no issue observed in the linux network setup. The series is based on linux-5.7-rc5. Patch 1: Add the OUI to the phy dt node to fix issue of missing mdio device Patch 2 and 3: Resetting phy needs GPIO support so add to dt and defconfig. [1] https://lkml.org/lkml/2018/11/29/154 To reproduce the issue: 1. Comment out VSC8541 reset sequence in fsbl/main.c from within the freedom-u540-c000-bootloader. 2. Build and flash fsbl.bin to micro sdcard. Boot the board and bootlog will show network setup failure messages as: [ 1.069474] libphy: MACB_mii_bus: probed [ 1.073092] mdio_bus 10090000.ethernet-ffffffff: MDIO device at address 0 is missing ..... [ 1.979252] macb 10090000.ethernet eth0: Could not attach PHY (-19) 3. Now apply the series build, and boot kernel. 4. MACB and VSC8541 driver get successfully probed and the network is set without any failure. So irrespective of whether the prior stages handle the phy reset sequence, the probing is successful in both the cases of cold boot and warm boot. Change History: =============================== V1: -Ignore 4th patch as suggested and so removed it from the series. -Verified this series on 5.7-rc5. V0: Base RFC patch. Verified on 5.7-rc2 Sagar Shrikant Kadam (3): dts: phy: fix missing mdio device and probe failure of vsc8541-01 device dts: phy: add GPIO number and active state used for phy reset riscv: defconfig: enable gpio support for HiFive Unleashed arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts | 2 ++ arch/riscv/configs/defconfig | 2 ++ 2 files changed, 4 insertions(+) -- 2.7.4
next reply other threads:[~2020-05-13 13:57 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-13 13:56 Sagar Shrikant Kadam [this message] 2020-05-13 13:56 ` [PATCH v1 0/3] fix macb phy probe failure if phy-reset is not handled Sagar Shrikant Kadam 2020-05-13 13:56 ` [PATCH v1 1/3] dts: phy: fix missing mdio device and probe failure of vsc8541-01 device Sagar Shrikant Kadam 2020-05-13 13:56 ` Sagar Shrikant Kadam 2020-05-13 13:57 ` [PATCH v1 2/3] dts: phy: add GPIO number and active state used for phy reset Sagar Shrikant Kadam 2020-05-13 13:57 ` Sagar Shrikant Kadam 2020-05-13 13:57 ` [PATCH v1 3/3] riscv: defconfig: enable gpio support for HiFive Unleashed Sagar Shrikant Kadam 2020-05-13 13:57 ` Sagar Shrikant Kadam 2020-05-23 5:44 ` [PATCH v1 0/3] fix macb phy probe failure if phy-reset is not handled Sagar Kadam 2020-05-23 5:44 ` Sagar Kadam
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=1589378222-15238-1-git-send-email-sagar.kadam@sifive.com \ --to=sagar.kadam@sifive.com \ --cc=atish.patra@wdc.com \ --cc=devicetree@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-riscv@lists.infradead.org \ --cc=palmer@dabbelt.com \ --cc=paul.walmsley@sifive.com \ --cc=robh+dt@kernel.org \ /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: linkBe 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.