2017-09-06 18:21:14

by Eugeniy Paltsev

[permalink] [raw]
Subject: [PATCH] ARC: AXS10x: Add temporary quirk to reset ethernet IP

DW ethernet controller on AXS10x hangs sometimes after SW reset, so
add temporary quirk to reset DW ethernet controller IP core.
This quirk can be removed after axs10x reset driver
(see http://patchwork.ozlabs.org/patch/800273/)
or simple reset driver
(see https://patchwork.kernel.org/patch/9903375/)
will be available in upstream.

Signed-off-by: Eugeniy Paltsev <[email protected]>
---
arch/arc/plat-axs10x/axs10x.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/arch/arc/plat-axs10x/axs10x.c b/arch/arc/plat-axs10x/axs10x.c
index f1ac679..cf14ebc 100644
--- a/arch/arc/plat-axs10x/axs10x.c
+++ b/arch/arc/plat-axs10x/axs10x.c
@@ -111,6 +111,13 @@ static void __init axs10x_early_init(void)

axs10x_enable_gpio_intc_wire();

+ /*
+ * Reset ethernet IP core.
+ * TODO: get rid of this quirk after axs10x reset driver (or simple
+ * reset driver) will be available in upstream.
+ */
+ iowrite32((1 << 5), (void __iomem *) CREG_MB_SW_RESET);
+
scnprintf(mb, 32, "MainBoard v%d", mb_rev);
axs10x_print_board_ver(CREG_MB_VER, mb);
}
--
2.9.3


2017-09-06 19:55:10

by Vineet Gupta

[permalink] [raw]
Subject: Re: [PATCH] ARC: AXS10x: Add temporary quirk to reset ethernet IP

On 09/06/2017 11:21 AM, Eugeniy Paltsev wrote:
> DW ethernet controller on AXS10x hangs sometimes after SW reset, so
> add temporary quirk to reset DW ethernet controller IP core.
> This quirk can be removed after axs10x reset driver
> (see http://patchwork.ozlabs.org/patch/800273/)
> or simple reset driver
> (see https://patchwork.kernel.org/patch/9903375/)
> will be available in upstream.
>
> Signed-off-by: Eugeniy Paltsev <[email protected]>

Added to for-next !

Thx,

> ---
> arch/arc/plat-axs10x/axs10x.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/arch/arc/plat-axs10x/axs10x.c b/arch/arc/plat-axs10x/axs10x.c
> index f1ac679..cf14ebc 100644
> --- a/arch/arc/plat-axs10x/axs10x.c
> +++ b/arch/arc/plat-axs10x/axs10x.c
> @@ -111,6 +111,13 @@ static void __init axs10x_early_init(void)
>
> axs10x_enable_gpio_intc_wire();
>
> + /*
> + * Reset ethernet IP core.
> + * TODO: get rid of this quirk after axs10x reset driver (or simple
> + * reset driver) will be available in upstream.
> + */
> + iowrite32((1 << 5), (void __iomem *) CREG_MB_SW_RESET);
> +
> scnprintf(mb, 32, "MainBoard v%d", mb_rev);
> axs10x_print_board_ver(CREG_MB_VER, mb);
> }
>

2017-09-08 17:15:00

by Eugeniy Paltsev

[permalink] [raw]
Subject: Re: [PATCH] ARC: AXS10x: Add temporary quirk to reset ethernet IP

On Wed, 2017-09-06 at 12:54 -0700, Vineet Gupta wrote:
> On 09/06/2017 11:21 AM, Eugeniy Paltsev wrote:
> > DW ethernet controller on AXS10x hangs sometimes after SW reset, so
> > add temporary quirk to reset DW ethernet controller IP core.
> > This quirk can be removed after axs10x reset driver
> > (see http://patchwork.ozlabs.org/patch/800273/)
> > or simple reset driver
> > (see https://patchwork.kernel.org/patch/9903375/)
> > will be available in upstream.
> >
> > Signed-off-by: Eugeniy Paltsev <[email protected]>
>
> Added to for-next !
>
> Thx,

Hi Vineet,

Please specify if you have plans to add this patch to 4.14?

I'm asking because we mostly need this quirk in 4.14 - I hope generic simple
reset driver will be available in 4.15.

Thanks.

>
> > ---
> >   arch/arc/plat-axs10x/axs10x.c | 7 +++++++
> >   1 file changed, 7 insertions(+)
> >
> > diff --git a/arch/arc/plat-axs10x/axs10x.c b/arch/arc/plat-axs10x/axs10x.c
> > index f1ac679..cf14ebc 100644
> > --- a/arch/arc/plat-axs10x/axs10x.c
> > +++ b/arch/arc/plat-axs10x/axs10x.c
> > @@ -111,6 +111,13 @@ static void __init axs10x_early_init(void)
> >   
> >    axs10x_enable_gpio_intc_wire();
> >   
> > + /*
> > +  * Reset ethernet IP core.
> > +  * TODO: get rid of this quirk after axs10x reset driver (or simple
> > +  * reset driver) will be available in upstream.
> > +  */
> > + iowrite32((1 << 5), (void __iomem *) CREG_MB_SW_RESET);
> > +
> >    scnprintf(mb, 32, "MainBoard v%d", mb_rev);
> >    axs10x_print_board_ver(CREG_MB_VER, mb);
> >   }
> >
>
>
--
 Eugeniy Paltsev

2017-09-08 17:31:22

by Vineet Gupta

[permalink] [raw]
Subject: Re: [PATCH] ARC: AXS10x: Add temporary quirk to reset ethernet IP

On 09/08/2017 10:14 AM, Eugeniy Paltsev wrote:
> On Wed, 2017-09-06 at 12:54 -0700, Vineet Gupta wrote:
>> On 09/06/2017 11:21 AM, Eugeniy Paltsev wrote:
>>> DW ethernet controller on AXS10x hangs sometimes after SW reset, so
>>> add temporary quirk to reset DW ethernet controller IP core.
>>> This quirk can be removed after axs10x reset driver
>>> (see http://patchwork.ozlabs.org/patch/800273/)
>>> or simple reset driver
>>> (see https://patchwork.kernel.org/patch/9903375/)
>>> will be available in upstream.
>>>
>>> Signed-off-by: Eugeniy Paltsev <[email protected]>
>> Added to for-next !
>>
>> Thx,
> Hi Vineet,
>
> Please specify if you have plans to add this patch to 4.14?
>
> I'm asking because we mostly need this quirk in 4.14 - I hope generic simple
> reset driver will be available in 4.15.

New code can't be added during the merge window ! I've applied it locally and it
will happen after rc1 is out !