Hi,
as you know, the Cirrus EP9301 watchdog reset has serious problem, so I
have patched the linux vanilla kernel 2.6.18 in order to fix the reset
problem (as technologic systems has already done for 2.4.x). The patch
is attached below.
Regards,
Marco Pracucci
> Hi all,
>
> I have just tested the TS-7200 with linux kernel 2.6.18 and derevo patch
> 20.1. I have experienced a problem that frequently occours: the system
> hangs on reboot. In particular, after I call the reboot command
> (sysvinit-2.86) the system prints
>
> Rebooting... Restarting system.
> .
>
> and then hangs.
>
This patch fix a reset problem on Cirrus EP9301/EP9302 processor,
using the TS-72XX watchdog timer. This patch should be applyied against
vanilla kernel 2.6.18
Marco Pracucci
Francesco Baschieri
--- linux-2.6.18-vanilla/include/asm-arm/arch-ep93xx/system.h
2006-09-20 03:42:06.000000000 +0000
+++ linux-2.6.18/include/asm-arm/arch-ep93xx/system.h 2006-10-10
15:33:16.000000000 +0000
@@ -4,6 +4,10 @@
#include <asm/hardware.h>
+#define TS7XXX_WATCHDOG_CTRL 0x23800000
+#define TS7XXX_WATCHDOG_FEED 0x23C00000
+
+
static inline void arch_idle(void)
{
cpu_do_idle();
@@ -11,16 +15,15 @@
static inline void arch_reset(char mode)
{
- u32 devicecfg;
-
local_irq_disable();
+
+ //
+ // Enable the watchdog timer so that it will reset the part.
+ //
+
+ // Use TS-7200 watchdog
+ __raw_writew(0x5, TS7XXX_WATCHDOG_FEED);
+ __raw_writew(0x1, TS7XXX_WATCHDOG_CTRL);
- devicecfg = __raw_readl(EP93XX_SYSCON_DEVICE_CONFIG);
- __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
- __raw_writel(devicecfg | 0x80000000, EP93XX_SYSCON_DEVICE_CONFIG);
- __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
- __raw_writel(devicecfg & ~0x80000000, EP93XX_SYSCON_DEVICE_CONFIG);
-
- while (1)
- ;
+ while (1);
}
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|