devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] fix macb phy probe failure if phy-reset is not handled
@ 2020-11-10 15:22 Sagar Shrikant Kadam
  2020-11-10 15:22 ` [PATCH v2 1/3] dts: phy: fix missing mdio device and probe failure of vsc8541-01 device Sagar Shrikant Kadam
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Sagar Shrikant Kadam @ 2020-11-10 15:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-riscv, devicetree, kernel, atish.patra, alistair.francis,
	anup, yash.shah, aou, palmer, paul.walmsley, robh+dt,
	Sagar Shrikant Kadam

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 or u-boot-spl is resetting
the phy device, and so there is no issue observed in the linux network
setup.

The series is based on linux-5.10-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: 
Using FSBL:
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.

Using u-boot:
1. Comment out VSC8541 reset sequence in board/sifive/fu540/spl.c
   from mainline u-boot source code.
2. Build and flash u-boot binaries 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:
===============================
V2:
-Rebased v1 on linux kernel v5.10-rc3.

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


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-02-06 10:29 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-10 15:22 [PATCH v2 0/3] fix macb phy probe failure if phy-reset is not handled Sagar Shrikant Kadam
2020-11-10 15:22 ` [PATCH v2 1/3] dts: phy: fix missing mdio device and probe failure of vsc8541-01 device Sagar Shrikant Kadam
2020-11-10 15:22 ` [PATCH v2 2/3] dts: phy: add GPIO number and active state used for phy reset Sagar Shrikant Kadam
2020-11-10 15:22 ` [PATCH v2 3/3] riscv: defconfig: enable gpio support for HiFive Unleashed Sagar Shrikant Kadam
2021-01-14  5:01 ` [PATCH v2 0/3] fix macb phy probe failure if phy-reset is not handled Palmer Dabbelt
2021-02-04 10:16   ` Andreas Schwab
2021-02-05  3:41     ` Palmer Dabbelt
2021-02-06 10:27       ` David Abdurachmanov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).