Re: [U-Boot] [PATCH v3 2/2] ls102xa: Fix reset hang

2015-10-12 Thread York Sun
On 10/12/2015 09:06 AM, Fabio Estevam wrote:
> On Mon, Oct 12, 2015 at 1:01 PM, Tom Rini  wrote:
> 
>>> Are you happy with this series?
>>>
>>> This one fixes a regression, so it would be nice to have it applied in 
>>> 2015.10.
>>
>> Sorry, for some reason I thought it had been picked up already by
>> Stefano.
>>
>> Stefano, are there any other release critical imx/related changes?  If
>> not, I can pickup these two directly, otherwise put together a PR
>> please.  Or just put together a PR if you like, thanks!
> 
> Initially I thought Layerscape patches would go via York Sun's tree.
> 
> When I checked with him he said it would go via your tree:
> https://www.mail-archive.com/u-boot@lists.denx.de/msg187705.html
> 

Tom,

There might be a confusion. Please pick it up if you think it is ready.

York
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3 2/2] ls102xa: Fix reset hang

2015-10-12 Thread Tom Rini
On Mon, Oct 12, 2015 at 12:53:12PM -0300, Fabio Estevam wrote:
> Hi Tom,
> 
> On Sat, Oct 3, 2015 at 2:21 PM, Fabio Estevam  wrote:
> > From: Fabio Estevam 
> >
> > Since commit 623d96e89aca6("imx: wdog: correct wcr register settings")
> > issuing a 'reset' command causes the system to hang.
> >
> > Unlike i.MX and Vybrid, the watchdog controller on LS102x is big-endian.
> >
> > This means that the watchdog on LS1021 has been working by accident as
> > it does not use the big-endian accessors in drivers/watchdog/imx_watchdog.c.
> > Commit 623d96e89aca6("imx: wdog: correct wcr register settings") only
> > revelead the endianness problem on LS102x.
> >
> > In order to fix the reset hang, introduce a reset_cpu() implementation that
> > is specific for ls102x, which accesses the watchdog WCR register in 
> > big-endian
> > format. All that is required to reset LS102x is to clear the SRS bit.
> >
> > This approach is a temporary workaround to avoid a regression for LS102x
> > in the 2015.10 release. The proper fix is to make the watchdog driver
> > endian-aware, so that it can work for i.MX, Vybrid and LS102x.
> >
> > Reported-by: Sinan Akman 
> > Tested-by: Sinan Akman 
> > Reviewed-by: Wolfgang Denk 
> > Signed-off-by: Fabio Estevam 
> 
> Are you happy with this series?
> 
> This one fixes a regression, so it would be nice to have it applied in 
> 2015.10.

Sorry, for some reason I thought it had been picked up already by
Stefano.

Stefano, are there any other release critical imx/related changes?  If
not, I can pickup these two directly, otherwise put together a PR
please.  Or just put together a PR if you like, thanks!

-- 
Tom


signature.asc
Description: Digital signature
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3 2/2] ls102xa: Fix reset hang

2015-10-12 Thread Fabio Estevam
Hi Tom,

On Sat, Oct 3, 2015 at 2:21 PM, Fabio Estevam  wrote:
> From: Fabio Estevam 
>
> Since commit 623d96e89aca6("imx: wdog: correct wcr register settings")
> issuing a 'reset' command causes the system to hang.
>
> Unlike i.MX and Vybrid, the watchdog controller on LS102x is big-endian.
>
> This means that the watchdog on LS1021 has been working by accident as
> it does not use the big-endian accessors in drivers/watchdog/imx_watchdog.c.
> Commit 623d96e89aca6("imx: wdog: correct wcr register settings") only
> revelead the endianness problem on LS102x.
>
> In order to fix the reset hang, introduce a reset_cpu() implementation that
> is specific for ls102x, which accesses the watchdog WCR register in big-endian
> format. All that is required to reset LS102x is to clear the SRS bit.
>
> This approach is a temporary workaround to avoid a regression for LS102x
> in the 2015.10 release. The proper fix is to make the watchdog driver
> endian-aware, so that it can work for i.MX, Vybrid and LS102x.
>
> Reported-by: Sinan Akman 
> Tested-by: Sinan Akman 
> Reviewed-by: Wolfgang Denk 
> Signed-off-by: Fabio Estevam 

Are you happy with this series?

This one fixes a regression, so it would be nice to have it applied in 2015.10.

Thanks
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3 2/2] ls102xa: Fix reset hang

2015-10-12 Thread Fabio Estevam
On Mon, Oct 12, 2015 at 1:01 PM, Tom Rini  wrote:

>> Are you happy with this series?
>>
>> This one fixes a regression, so it would be nice to have it applied in 
>> 2015.10.
>
> Sorry, for some reason I thought it had been picked up already by
> Stefano.
>
> Stefano, are there any other release critical imx/related changes?  If
> not, I can pickup these two directly, otherwise put together a PR
> please.  Or just put together a PR if you like, thanks!

Initially I thought Layerscape patches would go via York Sun's tree.

When I checked with him he said it would go via your tree:
https://www.mail-archive.com/u-boot@lists.denx.de/msg187705.html
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3 2/2] ls102xa: Fix reset hang

2015-10-12 Thread Tom Rini
On Mon, Oct 12, 2015 at 01:06:24PM -0300, Fabio Estevam wrote:
> On Mon, Oct 12, 2015 at 1:01 PM, Tom Rini  wrote:
> 
> >> Are you happy with this series?
> >>
> >> This one fixes a regression, so it would be nice to have it applied in 
> >> 2015.10.
> >
> > Sorry, for some reason I thought it had been picked up already by
> > Stefano.
> >
> > Stefano, are there any other release critical imx/related changes?  If
> > not, I can pickup these two directly, otherwise put together a PR
> > please.  Or just put together a PR if you like, thanks!
> 
> Initially I thought Layerscape patches would go via York Sun's tree.

OK.  For the record, I had this mentally filed as "generic imx/etc
issue" rather than "Freescale platform specific issue".

-- 
Tom


signature.asc
Description: Digital signature
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3 2/2] ls102xa: Fix reset hang

2015-10-12 Thread Tom Rini
On Sat, Oct 03, 2015 at 02:21:00PM -0300, Fabio Estevam wrote:

> From: Fabio Estevam 
> 
> Since commit 623d96e89aca6("imx: wdog: correct wcr register settings")
> issuing a 'reset' command causes the system to hang.
> 
> Unlike i.MX and Vybrid, the watchdog controller on LS102x is big-endian.
> 
> This means that the watchdog on LS1021 has been working by accident as
> it does not use the big-endian accessors in drivers/watchdog/imx_watchdog.c.
> Commit 623d96e89aca6("imx: wdog: correct wcr register settings") only
> revelead the endianness problem on LS102x.
> 
> In order to fix the reset hang, introduce a reset_cpu() implementation that 
> is specific for ls102x, which accesses the watchdog WCR register in big-endian
> format. All that is required to reset LS102x is to clear the SRS bit.
> 
> This approach is a temporary workaround to avoid a regression for LS102x
> in the 2015.10 release. The proper fix is to make the watchdog driver 
> endian-aware, so that it can work for i.MX, Vybrid and LS102x.
> 
> Reported-by: Sinan Akman 
> Tested-by: Sinan Akman 
> Reviewed-by: Wolfgang Denk 
> Signed-off-by: Fabio Estevam 

Applied to u-boot/master, thanks!

-- 
Tom


signature.asc
Description: Digital signature
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3 2/2] ls102xa: Fix reset hang

2015-10-12 Thread Stefano Babic
Hi Tom,

On 12/10/2015 18:01, Tom Rini wrote:
> On Mon, Oct 12, 2015 at 12:53:12PM -0300, Fabio Estevam wrote:
>> Hi Tom,
>>
>> On Sat, Oct 3, 2015 at 2:21 PM, Fabio Estevam  wrote:
>>> From: Fabio Estevam 
>>>
>>> Since commit 623d96e89aca6("imx: wdog: correct wcr register settings")
>>> issuing a 'reset' command causes the system to hang.
>>>
>>> Unlike i.MX and Vybrid, the watchdog controller on LS102x is big-endian.
>>>
>>> This means that the watchdog on LS1021 has been working by accident as
>>> it does not use the big-endian accessors in drivers/watchdog/imx_watchdog.c.
>>> Commit 623d96e89aca6("imx: wdog: correct wcr register settings") only
>>> revelead the endianness problem on LS102x.
>>>
>>> In order to fix the reset hang, introduce a reset_cpu() implementation that
>>> is specific for ls102x, which accesses the watchdog WCR register in 
>>> big-endian
>>> format. All that is required to reset LS102x is to clear the SRS bit.
>>>
>>> This approach is a temporary workaround to avoid a regression for LS102x
>>> in the 2015.10 release. The proper fix is to make the watchdog driver
>>> endian-aware, so that it can work for i.MX, Vybrid and LS102x.
>>>
>>> Reported-by: Sinan Akman 
>>> Tested-by: Sinan Akman 
>>> Reviewed-by: Wolfgang Denk 
>>> Signed-off-by: Fabio Estevam 
>>
>> Are you happy with this series?
>>
>> This one fixes a regression, so it would be nice to have it applied in 
>> 2015.10.
> 
> Sorry, for some reason I thought it had been picked up already by
> Stefano.

I missed them, as I was not in CC and I was not delegated.

> 
> Stefano, are there any other release critical imx/related changes?  If
> not, I can pickup these two directly, otherwise put together a PR
> please.  Or just put together a PR if you like, thanks!

There are a couple of fixes for imximage - I see you have already picked
up this, so I send my PR with only the imximage fixes.

Stefano


-- 
=
DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de
=
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v3 2/2] ls102xa: Fix reset hang

2015-10-03 Thread Fabio Estevam
From: Fabio Estevam 

Since commit 623d96e89aca6("imx: wdog: correct wcr register settings")
issuing a 'reset' command causes the system to hang.

Unlike i.MX and Vybrid, the watchdog controller on LS102x is big-endian.

This means that the watchdog on LS1021 has been working by accident as
it does not use the big-endian accessors in drivers/watchdog/imx_watchdog.c.
Commit 623d96e89aca6("imx: wdog: correct wcr register settings") only
revelead the endianness problem on LS102x.

In order to fix the reset hang, introduce a reset_cpu() implementation that 
is specific for ls102x, which accesses the watchdog WCR register in big-endian
format. All that is required to reset LS102x is to clear the SRS bit.

This approach is a temporary workaround to avoid a regression for LS102x
in the 2015.10 release. The proper fix is to make the watchdog driver 
endian-aware, so that it can work for i.MX, Vybrid and LS102x.

Reported-by: Sinan Akman 
Tested-by: Sinan Akman 
Reviewed-by: Wolfgang Denk 
Signed-off-by: Fabio Estevam 
---
Changes since v2:
- Explain that this a temporary workaround (Tom)
Changes since v1:
- Do not add duplicate wdog struct (Wolfgang)

 arch/arm/cpu/armv7/ls102xa/cpu.c | 15 +++
 drivers/watchdog/Makefile|  2 +-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/arch/arm/cpu/armv7/ls102xa/cpu.c b/arch/arm/cpu/armv7/ls102xa/cpu.c
index 8dd95d9..e2eb5f3 100644
--- a/arch/arm/cpu/armv7/ls102xa/cpu.c
+++ b/arch/arm/cpu/armv7/ls102xa/cpu.c
@@ -13,6 +13,8 @@
 #include 
 #include 
 #include 
+#include 
+#include 
 
 #include "fsl_epu.h"
 
@@ -354,3 +356,16 @@ void smp_kick_all_cpus(void)
asm volatile("sev");
 }
 #endif
+
+void reset_cpu(ulong addr)
+{
+   struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
+
+   clrbits_be16(>wcr, WCR_SRS);
+
+   while (1) {
+   /*
+* Let the watchdog trigger
+*/
+   }
+}
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index 9e9cb55..a007ae8 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -7,7 +7,7 @@
 
 obj-$(CONFIG_AT91SAM9_WATCHDOG) += at91sam9_wdt.o
 obj-$(CONFIG_FTWDT010_WATCHDOG) += ftwdt010_wdt.o
-ifneq (,$(filter $(SOC), mx31 mx35 mx5 mx6 mx7 vf610 ls102xa))
+ifneq (,$(filter $(SOC), mx31 mx35 mx5 mx6 mx7 vf610))
 obj-y += imx_watchdog.o
 endif
 obj-$(CONFIG_S5P)   += s5p_wdt.o
-- 
1.9.1

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot