[PATCH] arm: dts: socfpga: use reset-name "stmmaceth-ocp" instead of "ahb"

Mamta Shukla posted 1 patch 1 month, 1 week ago
There is a newer version of this series
arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
[PATCH] arm: dts: socfpga: use reset-name "stmmaceth-ocp" instead of "ahb"
Posted by Mamta Shukla 1 month, 1 week ago
The "stmmaceth-ocp" reset line in dwmac-socfpga driver is required
to get EMAC controller out of reset on Arria10[1].
Changed in Upstream to "ahb"(331085a423b  arm64: dts: socfpga: change the
reset-name of "stmmaceth-ocp" to "ahb" ).

If "ahb" reset-line is used, connection via ssh is found to be slow and significant
packet loss observed with ping. This prominently happens with Real Time Kernel
(PREEMPT_RT enabled). Further with STMMAC-SELFTEST Driver enabled, ethtool test
also FAILS.

$ ethtool -t eth0
[  322.946709] socfpga-dwmac ff800000.ethernet eth0: entered promiscuous mode
[  323.374558] socfpga-dwmac ff800000.ethernet eth0: left promiscuous mode
The test result is FAIL
The test extra info:
 1. MAC Loopback                 0
 2. PHY Loopback                 -110
 3. MMC Counters                 -110
 4. EEE                          -95
 5. Hash Filter MC               0
 6. Perfect Filter UC            -110
 7. MC Filter                    -110
 8. UC Filter                    0
 9. Flow Control                 -110
10. RSS                          -95
11. VLAN Filtering               -95
12. VLAN Filtering (perf)        -95
13. Double VLAN Filter           -95
14. Double VLAN Filter (perf)    -95
15. Flexible RX Parser           -95
16. SA Insertion (desc)          -95
17. SA Replacement (desc)        -95
18. SA Insertion (reg)           -95
19. SA Replacement (reg)         -95
20. VLAN TX Insertion            -95
21. SVLAN TX Insertion           -95
22. L3 DA Filtering              -95
23. L3 SA Filtering              -95
24. L4 DA TCP Filtering          -95
25. L4 SA TCP Filtering          -95
26. L4 DA UDP Filtering          -95
27. L4 SA UDP Filtering          -95
28. ARP Offload                  -95
29. Jumbo Frame                  -110
30. Multichannel Jumbo           -95
31. Split Header                 -95
32. TBS (ETF Scheduler)          -95

[  324.881327] socfpga-dwmac ff800000.ethernet eth0: Link is Down
[  327.995360] socfpga-dwmac ff800000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx

Link:[1] https://www.intel.com/content/www/us/en/docs/programmable/683711/21-2/functional-description-of-the-emac.html
Signed-off-by: Mamta Shukla <mamta.shukla@leica-geosystems.com>
---
 arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi b/arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi
index f36063c57c7f..72c55e5187ca 100644
--- a/arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi
+++ b/arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi
@@ -440,7 +440,7 @@ gmac0: ethernet@ff800000 {
 			clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>;
 			clock-names = "stmmaceth", "ptp_ref";
 			resets = <&rst EMAC0_RESET>, <&rst EMAC0_OCP_RESET>;
-			reset-names = "stmmaceth", "ahb";
+			reset-names = "stmmaceth", "stmmaceth-ocp";
 			snps,axi-config = <&socfpga_axi_setup>;
 			status = "disabled";
 		};
@@ -460,7 +460,7 @@ gmac1: ethernet@ff802000 {
 			clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>;
 			clock-names = "stmmaceth", "ptp_ref";
 			resets = <&rst EMAC1_RESET>, <&rst EMAC1_OCP_RESET>;
-			reset-names = "stmmaceth", "ahb";
+			reset-names = "stmmaceth", "stmmaceth-ocp";
 			snps,axi-config = <&socfpga_axi_setup>;
 			status = "disabled";
 		};
@@ -480,7 +480,7 @@ gmac2: ethernet@ff804000 {
 			clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>;
 			clock-names = "stmmaceth", "ptp_ref";
 			resets = <&rst EMAC2_RESET>, <&rst EMAC2_OCP_RESET>;
-			reset-names = "stmmaceth", "ahb";
+			reset-names = "stmmaceth", "stmmaceth-ocp";
 			snps,axi-config = <&socfpga_axi_setup>;
 			status = "disabled";
 		};
-- 
2.25.1
Re: [PATCH] arm: dts: socfpga: use reset-name "stmmaceth-ocp" instead of "ahb"
Posted by Ahmad Fatoum 1 month ago
Hello Mamta,

Thanks for your fix.

On 16.10.24 09:41, Mamta Shukla wrote:
> The "stmmaceth-ocp" reset line in dwmac-socfpga driver is required
> to get EMAC controller out of reset on Arria10[1].
> Changed in Upstream to "ahb"(331085a423b  arm64: dts: socfpga: change the
> reset-name of "stmmaceth-ocp" to "ahb" ).

To ease automatic backporting, please add:

Fixes: 331085a423b ("arm64: dts: socfpga: change the reset-name of "stmmaceth-ocp" to "ahb")

before your S-o-b.

It's probably worth pointing out in the commit message that according
to the commit message title, the change was predominantly meant for ARM64
SoCFPGA and that at least for the Arria10, it's not applicable.

> If "ahb" reset-line is used, connection via ssh is found to be slow and significant
> packet loss observed with ping.

Nitpick: In the end it's the same underlying reset line, they are just toggled for
different purposes. The ahb reset is deasserted in probe before first register access,
while crucially the stmmacheth-ocp reset needs to be asserted every time during
PHY mode reconfiguration.

> This prominently happens with Real Time Kernel
> (PREEMPT_RT enabled). Further with STMMAC-SELFTEST Driver enabled, ethtool test
> also FAILS.

FTR: I observed the same regression on v6.6.57.

> Link:[1] https://www.intel.com/content/www/us/en/docs/programmable/683711/21-2/functional-description-of-the-emac.html
> Signed-off-by: Mamta Shukla <mamta.shukla@leica-geosystems.com>

Tested-by: Ahmad Fatoum <a.fatoum@pengutronix.de>

With commit message reworded as described above (and --subject-prefix="PATCH net"):

Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de>

Cheers,
Ahmad

> ---
>  arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi b/arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi
> index f36063c57c7f..72c55e5187ca 100644
> --- a/arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi
> +++ b/arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi
> @@ -440,7 +440,7 @@ gmac0: ethernet@ff800000 {
>  			clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>;
>  			clock-names = "stmmaceth", "ptp_ref";
>  			resets = <&rst EMAC0_RESET>, <&rst EMAC0_OCP_RESET>;
> -			reset-names = "stmmaceth", "ahb";
> +			reset-names = "stmmaceth", "stmmaceth-ocp";
>  			snps,axi-config = <&socfpga_axi_setup>;
>  			status = "disabled";
>  		};
> @@ -460,7 +460,7 @@ gmac1: ethernet@ff802000 {
>  			clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>;
>  			clock-names = "stmmaceth", "ptp_ref";
>  			resets = <&rst EMAC1_RESET>, <&rst EMAC1_OCP_RESET>;
> -			reset-names = "stmmaceth", "ahb";
> +			reset-names = "stmmaceth", "stmmaceth-ocp";
>  			snps,axi-config = <&socfpga_axi_setup>;
>  			status = "disabled";
>  		};
> @@ -480,7 +480,7 @@ gmac2: ethernet@ff804000 {
>  			clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>;
>  			clock-names = "stmmaceth", "ptp_ref";
>  			resets = <&rst EMAC2_RESET>, <&rst EMAC2_OCP_RESET>;
> -			reset-names = "stmmaceth", "ahb";
> +			reset-names = "stmmaceth", "stmmaceth-ocp";
>  			snps,axi-config = <&socfpga_axi_setup>;
>  			status = "disabled";
>  		};


-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |