2016-12-11 19:16:23

by Florian Fainelli

[permalink] [raw]
Subject: [PATCH] ARM: ep93xx: Disable TS-72xx watchdog before uncompressing

The TS-72xx/73xx boards have a CPLD watchdog which is configured to
reset the board after 8 seconds, if the kernel is large enough that this
takes about this time to decompress the kernel, we will encounter a
spurious reboot.

Do not pull ts72xx.h, but instead locally define what we need to disable
the watchdog.

Signed-off-by: Florian Fainelli <[email protected]>
---
arch/arm/mach-ep93xx/include/mach/uncompress.h | 12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/arch/arm/mach-ep93xx/include/mach/uncompress.h b/arch/arm/mach-ep93xx/include/mach/uncompress.h
index 03c42e5400d2..b0cf2de77f81 100644
--- a/arch/arm/mach-ep93xx/include/mach/uncompress.h
+++ b/arch/arm/mach-ep93xx/include/mach/uncompress.h
@@ -10,6 +10,7 @@
*/

#include <mach/ep93xx-regs.h>
+#include <asm/mach-types.h>

static unsigned char __raw_readb(unsigned int ptr)
{
@@ -75,8 +76,19 @@ static void ethernet_reset(void)
;
}

+#define TS72XX_WDT_CONTROL_PHYS_BASE 0x23800000
+#define TS72XX_WDT_FEED_PHYS_BASE 0x23c00000
+#define TS72XX_WDT_FEED_VAL 0x05
+
+static void __maybe_unused ts72xx_watchdog_disable(void)
+{
+ __raw_writeb(TS72XX_WDT_FEED_VAL, TS72XX_WDT_FEED_PHYS_BASE);
+ __raw_writeb(0, TS72XX_WDT_CONTROL_PHYS_BASE);
+}

static void arch_decomp_setup(void)
{
+ if (machine_is_ts72xx())
+ ts72xx_watchdog_disable();
ethernet_reset();
}
--
2.9.3


2016-12-19 02:18:08

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH] ARM: ep93xx: Disable TS-72xx watchdog before uncompressing

Le 12/11/16 à 11:16, Florian Fainelli a écrit :
> The TS-72xx/73xx boards have a CPLD watchdog which is configured to
> reset the board after 8 seconds, if the kernel is large enough that this
> takes about this time to decompress the kernel, we will encounter a
> spurious reboot.
>
> Do not pull ts72xx.h, but instead locally define what we need to disable
> the watchdog.
>
> Signed-off-by: Florian Fainelli <[email protected]>

Hartley, Ryan, do you guys maintain a git tree with EP93xx patches, or
should I submit them through RMK's patch system once you are okay with them?

Thanks!
--
Florian

2016-12-19 16:08:55

by Hartley Sweeten

[permalink] [raw]
Subject: RE: [PATCH] ARM: ep93xx: Disable TS-72xx watchdog before uncompressing

On Sunday, December 18, 2016 7:08 PM, Florian Fainelli wrote:
> Le 12/11/16 à 11:16, Florian Fainelli a écrit :
>> The TS-72xx/73xx boards have a CPLD watchdog which is configured to
>> reset the board after 8 seconds, if the kernel is large enough that this
>> takes about this time to decompress the kernel, we will encounter a
>> spurious reboot.
>>
>> Do not pull ts72xx.h, but instead locally define what we need to disable
>> the watchdog.
>>
>> Signed-off-by: Florian Fainelli <[email protected]>
>
> Hartley, Ryan, do you guys maintain a git tree with EP93xx patches, or
> should I submit them through RMK's patch system once you are okay with them?

Ryan has an old tree on github but it has not been updated since Oct 14, 2013. I'm
not sure if he is doing any active development at this time.

This patch will have to go through RMK's patch system or some other tree.

Thanks,
Hartley