devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] rock64: dts: fix gmac2io stability issues
@ 2018-01-22 17:46 Kamil Trzciński
       [not found] ` <20180122174628.15613-1-ayufan-1nXcilf+G7OHXe+LvDLADg@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Kamil Trzciński @ 2018-01-22 17:46 UTC (permalink / raw)
  Cc: Kamil Trzciński, Rob Herring, Mark Rutland, Catalin Marinas,
	Will Deacon, Heiko Stuebner, David Wu, David S. Miller,
	Joseph Chen, Liang Chen, devicetree, linux-arm-kernel,
	linux-rockchip, linux-kernel

This commit enables thresh dma mode as this forces to disable checksuming,
and chooses delay values which make the interface stable.

These changes are needed, because ROCK64 is faced with two problems:
1. tx checksuming does not work with packets larger than 1498,
2. the default delays for tx/rx are not stable when using 1Gbps connection.

Delays were found out with:
https://github.com/ayufan-rock64/linux-build/tree/master/recipes/gmac-delays-test

Change-Id: Ie894df4b52122988da683c02e3a05d635a5c7b84
Signed-off-by: Kamil Trzciński <ayufan@ayufan.eu>
---
 arch/arm64/boot/dts/rockchip/rk3328-rock64.dts | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
index 5602ec01fed9..bcc0bb35d840 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
@@ -132,8 +132,6 @@
 	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
 	assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
 	clock_in_out = "input";
-	/* shows instability at 1GBit right now */
-	max-speed = <100>;
 	phy-supply = <&vcc_io>;
 	phy-mode = "rgmii";
 	pinctrl-names = "default";
@@ -141,8 +139,9 @@
 	snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
 	snps,reset-active-low;
 	snps,reset-delays-us = <0 10000 50000>;
-	tx_delay = <0x26>;
-	rx_delay = <0x11>;
+	snps,force_thresh_dma_mode;
+	tx_delay = <0x24>;
+	rx_delay = <0x18>;
 	status = "okay";
 };
 
-- 
2.14.1

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

* Re: [PATCH] rock64: dts: fix gmac2io stability issues
       [not found] ` <20180122174628.15613-1-ayufan-1nXcilf+G7OHXe+LvDLADg@public.gmane.org>
@ 2018-01-23 12:52   ` Heiko Stübner
  2018-01-24 15:34     ` Kamil Trzciński
  0 siblings, 1 reply; 3+ messages in thread
From: Heiko Stübner @ 2018-01-23 12:52 UTC (permalink / raw)
  To: Kamil Trzciński
  Cc: Rob Herring, Mark Rutland, Catalin Marinas, Will Deacon,
	David Wu, David S. Miller, Joseph Chen, Liang Chen,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

Hi Kamil,

Thanks for figuring out the source of the gmac instability :-) .

I've applied the patch as fix for 4.16 but corrected some small issues while 
doing so:
- The subject should be something like
	"arm64: dts: rockchip: fix rock64 gmac2io stability issues"
  The prefixes to use vary per subsystem, so it's best to use git log to
  look at previous commits

Am Montag, 22. Januar 2018, 18:46:22 CET schrieb Kamil Trzciński:
> This commit enables thresh dma mode as this forces to disable checksuming,
> and chooses delay values which make the interface stable.
> 
> These changes are needed, because ROCK64 is faced with two problems:
> 1. tx checksuming does not work with packets larger than 1498,
> 2. the default delays for tx/rx are not stable when using 1Gbps connection.
> 
> Delays were found out with:
> https://github.com/ayufan-rock64/linux-build/tree/master/recipes/gmac-delays
> -test
> 
> Change-Id: Ie894df4b52122988da683c02e3a05d635a5c7b84

That is some gerrit thingy which should not be part when sending patches 
upstream.

> Signed-off-by: Kamil Trzciński <ayufan-1nXcilf+G7OHXe+LvDLADg@public.gmane.org>
> ---
>  arch/arm64/boot/dts/rockchip/rk3328-rock64.dts | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
> b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts index
> 5602ec01fed9..bcc0bb35d840 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
> @@ -132,8 +132,6 @@
>  	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
>  	assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
>  	clock_in_out = "input";
> -	/* shows instability at 1GBit right now */
> -	max-speed = <100>;
>  	phy-supply = <&vcc_io>;
>  	phy-mode = "rgmii";
>  	pinctrl-names = "default";
> @@ -141,8 +139,9 @@
>  	snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
>  	snps,reset-active-low;
>  	snps,reset-delays-us = <0 10000 50000>;
> -	tx_delay = <0x26>;
> -	rx_delay = <0x11>;
> +	snps,force_thresh_dma_mode;

With the exception of compatible, reg, interrupts and status, I try to keep
other properties alphabetically sorted in Rockchip dts, so I've moved the
snps,force_thres_dma_mode up between pinctrl-0 and snps-reset-gpio.


Heiko
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH] rock64: dts: fix gmac2io stability issues
  2018-01-23 12:52   ` Heiko Stübner
@ 2018-01-24 15:34     ` Kamil Trzciński
  0 siblings, 0 replies; 3+ messages in thread
From: Kamil Trzciński @ 2018-01-24 15:34 UTC (permalink / raw)
  To: Heiko Stübner
  Cc: Rob Herring, Mark Rutland, Catalin Marinas, Will Deacon,
	David Wu, David S. Miller, Joseph Chen, Liang Chen, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2664 bytes --]

Thanks. This is my first ever patch send to Kernel :)

Kamil


On Tue, Jan 23, 2018 at 1:52 PM, Heiko Stübner <heiko@sntech.de> wrote:

> Hi Kamil,
>
> Thanks for figuring out the source of the gmac instability :-) .
>
> I've applied the patch as fix for 4.16 but corrected some small issues
> while
> doing so:
> - The subject should be something like
>         "arm64: dts: rockchip: fix rock64 gmac2io stability issues"
>   The prefixes to use vary per subsystem, so it's best to use git log to
>   look at previous commits
>
> Am Montag, 22. Januar 2018, 18:46:22 CET schrieb Kamil Trzciński:
> > This commit enables thresh dma mode as this forces to disable
> checksuming,
> > and chooses delay values which make the interface stable.
> >
> > These changes are needed, because ROCK64 is faced with two problems:
> > 1. tx checksuming does not work with packets larger than 1498,
> > 2. the default delays for tx/rx are not stable when using 1Gbps
> connection.
> >
> > Delays were found out with:
> > https://github.com/ayufan-rock64/linux-build/tree/
> master/recipes/gmac-delays
> > -test
> >
> > Change-Id: Ie894df4b52122988da683c02e3a05d635a5c7b84
>
> That is some gerrit thingy which should not be part when sending patches
> upstream.
>
> > Signed-off-by: Kamil Trzciński <ayufan@ayufan.eu>
> > ---
> >  arch/arm64/boot/dts/rockchip/rk3328-rock64.dts | 7 +++----
> >  1 file changed, 3 insertions(+), 4 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
> > b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts index
> > 5602ec01fed9..bcc0bb35d840 100644
> > --- a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
> > +++ b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
> > @@ -132,8 +132,6 @@
> >       assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
> >       assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
> >       clock_in_out = "input";
> > -     /* shows instability at 1GBit right now */
> > -     max-speed = <100>;
> >       phy-supply = <&vcc_io>;
> >       phy-mode = "rgmii";
> >       pinctrl-names = "default";
> > @@ -141,8 +139,9 @@
> >       snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
> >       snps,reset-active-low;
> >       snps,reset-delays-us = <0 10000 50000>;
> > -     tx_delay = <0x26>;
> > -     rx_delay = <0x11>;
> > +     snps,force_thresh_dma_mode;
>
> With the exception of compatible, reg, interrupts and status, I try to keep
> other properties alphabetically sorted in Rockchip dts, so I've moved the
> snps,force_thres_dma_mode up between pinctrl-0 and snps-reset-gpio.
>
>
> Heiko
>

[-- Attachment #2: Type: text/html, Size: 3728 bytes --]

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

end of thread, other threads:[~2018-01-24 15:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-22 17:46 [PATCH] rock64: dts: fix gmac2io stability issues Kamil Trzciński
     [not found] ` <20180122174628.15613-1-ayufan-1nXcilf+G7OHXe+LvDLADg@public.gmane.org>
2018-01-23 12:52   ` Heiko Stübner
2018-01-24 15:34     ` Kamil Trzciński

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).