ts-7000
[Top] [All Lists]

Re: [ts-7000] 2.6.18 hangs on reboot (PATCH)

To:
Subject: Re: [ts-7000] 2.6.18 hangs on reboot (PATCH)
From: Marco Pracucci <>
Date: Tue, 10 Oct 2006 15:51:23 +0000
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/
 


<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU