Re: No dwc0 on bananapi m1 with Linux 5.10 devicetree

Emmanuel Vadot <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
On Sun, 11 Apr 2021 09:24:33 +0000
qroxana via freebsd-arm <[email protected]> wrote:

> It seems the dwc0 no longer works after 6be3386466ab79a84b48429ae66244f21526d3df
> 
> dwc0: <A20 Gigabit Ethernet Controller> mem 0x1c50000-0x1c5ffff irq 72 on simplebus0
> dwc0: Can't reset DWC.
> device_attach: dwc0 attach returned 6
> 
> I've tried to revert this change on my bananapi m1 and dwc0 worked again.
> 
> commit e7ffa3b5ce04742455c6bd4d8af0fdedd9978c77
> Author: Emmanuel Vadot <[email protected]>
> Date: Sun Jan 17 19:02:46 2021 +0100
> 
> Import devicetree files from Linux 5.10
> 
> diff --git a/src/arm/sun7i-a20-bananapi.dts b/src/arm/sun7i-a20-bananapi.dts
> index bb3987e..0b3d9ae 100644
> --- a/src/arm/sun7i-a20-bananapi.dts
> +++ b/src/arm/sun7i-a20-bananapi.dts
> @@ -132,7 +132,7 @@
> pinctrl-names = "default";
> pinctrl-0 = <&gmac_rgmii_pins>;
> phy-handle = <&phy1>;
> - phy-mode = "rgmii";
> + phy-mode = "rgmii-id";
> phy-supply = <&reg_gmac_3v3>;
> status = "okay";
> };


 Hi,

 Sorry about that,
 Upstream did warned me about this change but I was sure that we did
nothing with the phy-mode in dwc, should have check better.

 Please try this patch (I have no allwinner dwc based board here) :
From 72c709db9ec3eb9a132ffe893b1e95e29bca62ac Mon Sep 17 00:00:00 2001
From: Emmanuel Vadot <[email protected]>
Date: Sun, 11 Apr 2021 21:34:57 +0200
Subject: [PATCH] dwc: Cope with recent dts changes

Add rgmii-id to the list of mode where we need to configure it as rgmii.
---
 sys/dev/dwc/if_dwc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/dev/dwc/if_dwc.c b/sys/dev/dwc/if_dwc.c
index 776d0d0dc39..0549874a977 100644
--- a/sys/dev/dwc/if_dwc.c
+++ b/sys/dev/dwc/if_dwc.c
@@ -1575,7 +1575,7 @@ dwc_attach(device_t dev)
 
 	node = ofw_bus_get_node(dev);
 	if (OF_getprop_alloc(node, "phy-mode", (void **)&phy_mode)) {
-		if (strcmp(phy_mode, "rgmii") == 0)
+		if (strcmp(phy_mode, "rgmii") == 0 || strcmp(phy_mode,
"rgmii-id") == 0) sc->phy_mode = PHY_MODE_RGMII;
 		if (strcmp(phy_mode, "rmii") == 0)
 			sc->phy_mode = PHY_MODE_RMII;
-- 
2.31.1



-- 
Emmanuel Vadot <[email protected]> <[email protected]>
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-arm
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.