diff options
author | Stefan Schmidt <stefan@datenfreihafen.org> | 2009-03-23 11:45:40 +0100 |
---|---|---|
committer | Stefan Schmidt <stefan@datenfreihafen.org> | 2009-03-23 11:45:40 +0100 |
commit | 451b1c687105655a4f2c9c477b05535041e25060 (patch) | |
tree | 3db315590172cd6244107a97a6603add934d7e32 /recipes/linux/linux-2.6.24/ts72xx/ts72xx-use-cpld-reset.patch | |
parent | 6767ca50430e37cdad0a8992b73c3f82ead134bf (diff) | |
parent | e2b99b79f516a7466dc050902cee62f39869bf9d (diff) |
Merge branch 'org.openembedded.dev' of git@git.openembedded.net:openembedded into org.openembedded.dev
Diffstat (limited to 'recipes/linux/linux-2.6.24/ts72xx/ts72xx-use-cpld-reset.patch')
-rw-r--r-- | recipes/linux/linux-2.6.24/ts72xx/ts72xx-use-cpld-reset.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/recipes/linux/linux-2.6.24/ts72xx/ts72xx-use-cpld-reset.patch b/recipes/linux/linux-2.6.24/ts72xx/ts72xx-use-cpld-reset.patch new file mode 100644 index 0000000000..9744a67653 --- /dev/null +++ b/recipes/linux/linux-2.6.24/ts72xx/ts72xx-use-cpld-reset.patch @@ -0,0 +1,41 @@ + +Use CPLD watchdog to reset the machine instead of buggy ep93xx one, which +sometimes get stuck... + +Signed-off-by: Petr Stetiar <ynezz@true.cz> + +Index: linux-2.6.22/include/asm-arm/arch-ep93xx/system.h +=================================================================== +--- linux-2.6.22.orig/include/asm-arm/arch-ep93xx/system.h 2007-08-30 00:53:47.000000000 +0200 ++++ linux-2.6.22/include/asm-arm/arch-ep93xx/system.h 2007-08-30 00:54:28.000000000 +0200 +@@ -3,6 +3,7 @@ + */ + + #include <asm/hardware.h> ++#include <asm/mach-types.h> + + static inline void arch_idle(void) + { +@@ -15,11 +16,17 @@ + + local_irq_disable(); + +- 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); ++ if (machine_is_ts72xx()) { ++ __raw_writeb(0x5, TS72XX_WATCHDOG_FEED_PHYS_BASE); ++ __raw_writeb(0x1, TS72XX_WATCHDOG_CONTROL_PHYS_BASE); ++ } else { ++ 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) + ; |