Message ID | e4df74aed2a7cff09366e72c87d408f41317907f.1606782187.git.stefan@agner.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: dts: meson: fix PHY deassert timing requirements | expand |
On Tue 01 Dec 2020 at 01:25, Stefan Agner <stefan@agner.ch> wrote: > According to the datasheet (Rev. 1.4, page 30) the RTL8211F requires > at least 50ms "for internal circuits settling time" before accessing > the PHY registers. This fixes an issue where the Ethernet link doesn't > come up when using ip link set down/up: > [ 29.360965] meson8b-dwmac ff3f0000.ethernet eth0: Link is Down > [ 34.569012] meson8b-dwmac ff3f0000.ethernet eth0: PHY [0.0:00] driver [RTL8211F Gigabit Ethernet] (irq=31) > [ 34.676732] meson8b-dwmac ff3f0000.ethernet: Failed to reset the dma > [ 34.678874] meson8b-dwmac ff3f0000.ethernet eth0: stmmac_hw_setup: DMA engine initialization failed > [ 34.687850] meson8b-dwmac ff3f0000.ethernet eth0: stmmac_open: Hw setup failed > > Fixes: 658e4129bb81 ("arm64: dts: meson: g12b: odroid-n2: add the Ethernet PHY reset line") > Signed-off-by: Stefan Agner <stefan@agner.ch> > --- > arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi > index 6982632ae646..a5652caacb27 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi > @@ -413,7 +413,7 @@ external_phy: ethernet-phy@0 { > max-speed = <1000>; > > reset-assert-us = <10000>; > - reset-deassert-us = <30000>; > + reset-deassert-us = <50000>; > reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; > > interrupt-parent = <&gpio_intc>; Thanks for sharing this is Stefan, The title of your patch should probably be modified to show that it addresses the odroid n2 only, as it stands. I have checked the RTL8211F doc I have, v1.9, and this one mention "72ms at least - not including the 1.0V supply rise time" before accessing the PHY registers :/ ... so 80ms maybe ?
On 2020-12-01 09:31, Jerome Brunet wrote: > On Tue 01 Dec 2020 at 01:25, Stefan Agner <stefan@agner.ch> wrote: > >> According to the datasheet (Rev. 1.4, page 30) the RTL8211F requires >> at least 50ms "for internal circuits settling time" before accessing >> the PHY registers. This fixes an issue where the Ethernet link doesn't >> come up when using ip link set down/up: >> [ 29.360965] meson8b-dwmac ff3f0000.ethernet eth0: Link is Down >> [ 34.569012] meson8b-dwmac ff3f0000.ethernet eth0: PHY [0.0:00] driver [RTL8211F Gigabit Ethernet] (irq=31) >> [ 34.676732] meson8b-dwmac ff3f0000.ethernet: Failed to reset the dma >> [ 34.678874] meson8b-dwmac ff3f0000.ethernet eth0: stmmac_hw_setup: DMA engine initialization failed >> [ 34.687850] meson8b-dwmac ff3f0000.ethernet eth0: stmmac_open: Hw setup failed >> >> Fixes: 658e4129bb81 ("arm64: dts: meson: g12b: odroid-n2: add the Ethernet PHY reset line") >> Signed-off-by: Stefan Agner <stefan@agner.ch> >> --- >> arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi >> index 6982632ae646..a5652caacb27 100644 >> --- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi >> +++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi >> @@ -413,7 +413,7 @@ external_phy: ethernet-phy@0 { >> max-speed = <1000>; >> >> reset-assert-us = <10000>; >> - reset-deassert-us = <30000>; >> + reset-deassert-us = <50000>; >> reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; >> >> interrupt-parent = <&gpio_intc>; > > Thanks for sharing this is Stefan, > The title of your patch should probably be modified to show that it > addresses the odroid n2 only, as it stands. Yes make sense. Hm, are there other boards with RTL8211F? From the comments in the DT it seems several other boards use the same PHY. Some however do not have any reset timing data at all currently it seems. > > I have checked the RTL8211F doc I have, v1.9, and this one mention > "72ms at least - not including the 1.0V supply rise time" before > accessing the PHY registers :/ ... so 80ms maybe ? Uh interesting, so it seems they increased it over documentation revisions. Yeah agreed 80ms is the safer value then. FWIW, I did test it with 50ms in a continuous loop for an hour or so without seeing any failure, but that was room temperature only. -- Stefan
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi index 6982632ae646..a5652caacb27 100644 --- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi @@ -413,7 +413,7 @@ external_phy: ethernet-phy@0 { max-speed = <1000>; reset-assert-us = <10000>; - reset-deassert-us = <30000>; + reset-deassert-us = <50000>; reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; interrupt-parent = <&gpio_intc>;
According to the datasheet (Rev. 1.4, page 30) the RTL8211F requires at least 50ms "for internal circuits settling time" before accessing the PHY registers. This fixes an issue where the Ethernet link doesn't come up when using ip link set down/up: [ 29.360965] meson8b-dwmac ff3f0000.ethernet eth0: Link is Down [ 34.569012] meson8b-dwmac ff3f0000.ethernet eth0: PHY [0.0:00] driver [RTL8211F Gigabit Ethernet] (irq=31) [ 34.676732] meson8b-dwmac ff3f0000.ethernet: Failed to reset the dma [ 34.678874] meson8b-dwmac ff3f0000.ethernet eth0: stmmac_hw_setup: DMA engine initialization failed [ 34.687850] meson8b-dwmac ff3f0000.ethernet eth0: stmmac_open: Hw setup failed Fixes: 658e4129bb81 ("arm64: dts: meson: g12b: odroid-n2: add the Ethernet PHY reset line") Signed-off-by: Stefan Agner <stefan@agner.ch> --- arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)