lkml.org 
[lkml]   [2020]   [Jun]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 103/172] ARM: dts: meson: Switch existing boards with RGMII PHY to "rgmii-id"
    Date
    From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

    [ Upstream commit 005231128e9e97461e81fa32421957a7664317ca ]

    Let the PHY generate the RX and TX delay on the Odroid-C1 and MXIII
    Plus.

    Previously we did not know that these boards used an RX delay. We
    assumed that setting the TX delay on the MAC side It turns out that
    these boards also require an RX delay of 2ns (verified on Odroid-C1,
    but the u-boot code uses the same setup on both boards). Ethernet only
    worked because u-boot added this RX delay on the MAC side.

    The 4ns TX delay was also wrong and the result of using an unsupported
    RGMII TX clock divider setting. This has been fixed in the driver with
    commit bd6f48546b9cb7 ("net: stmmac: dwmac-meson8b: Fix the RGMII TX
    delay on Meson8b/8m2 SoCs").

    Switch to phy-mode "rgmii-id" to let the PHY side handle all the delays,
    (as recommended by the Ethernet maintainers anyways) to correctly
    describe the need for a 2ns RX as well as 2ns TX delay on these boards.
    This fixes the Ethernet performance on Odroid-C1 where there was a huge
    amount of packet loss when transmitting data due to the incorrect TX
    delay.

    Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Signed-off-by: Kevin Hilman <khilman@baylibre.com>
    Link: https://lore.kernel.org/r/20200512215148.540322-3-martin.blumenstingl@googlemail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/arm/boot/dts/meson8b-odroidc1.dts | 3 +--
    arch/arm/boot/dts/meson8m2-mxiii-plus.dts | 4 +---
    2 files changed, 2 insertions(+), 5 deletions(-)

    diff --git a/arch/arm/boot/dts/meson8b-odroidc1.dts b/arch/arm/boot/dts/meson8b-odroidc1.dts
    index 8fdeeffecbdb..368b1dd57aec 100644
    --- a/arch/arm/boot/dts/meson8b-odroidc1.dts
    +++ b/arch/arm/boot/dts/meson8b-odroidc1.dts
    @@ -113,9 +113,8 @@ &ethmac {
    pinctrl-0 = <&eth_rgmii_pins>;
    pinctrl-names = "default";

    - phy-mode = "rgmii";
    phy-handle = <&eth_phy>;
    - amlogic,tx-delay-ns = <4>;
    + phy-mode = "rgmii-id";

    mdio {
    compatible = "snps,dwmac-mdio";
    diff --git a/arch/arm/boot/dts/meson8m2-mxiii-plus.dts b/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
    index 6ac02beb5fa7..feac69264ba3 100644
    --- a/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
    +++ b/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
    @@ -63,9 +63,7 @@ &ethmac {
    pinctrl-names = "default";

    phy-handle = <&eth_phy0>;
    - phy-mode = "rgmii";
    -
    - amlogic,tx-delay-ns = <4>;
    + phy-mode = "rgmii-id";

    snps,reset-gpio = <&gpio GPIOH_4 0>;
    snps,reset-delays-us = <0 10000 1000000>;
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-06-18 03:28    [W:2.321 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site