Re: [U-Boot] [PATCH v3 2/2] ls102xa: Fix reset hang
On 10/12/2015 09:06 AM, Fabio Estevam wrote: > On Mon, Oct 12, 2015 at 1:01 PM, Tom Riniwrote: > >>> 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
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 Estevamwrote: > > 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
Hi Tom, On Sat, Oct 3, 2015 at 2:21 PM, Fabio Estevamwrote: > 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
On Mon, Oct 12, 2015 at 1:01 PM, Tom Riniwrote: >> 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
On Mon, Oct 12, 2015 at 01:06:24PM -0300, Fabio Estevam wrote: > On Mon, Oct 12, 2015 at 1:01 PM, Tom Riniwrote: > > >> 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
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
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 Estevamwrote: >>> 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
From: Fabio EstevamSince 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