diff -Naur linux-2.6.30.4-orig/arch/arm/mach-comcerto/include/mach/system.h linux-2.6.30.4-new/arch/arm/mach-comcerto/include/mach/system.h
--- linux-2.6.30.4-orig/arch/arm/mach-comcerto/include/mach/system.h	2009-08-17 20:00:52.308837000 -0700
+++ linux-2.6.30.4-new/arch/arm/mach-comcerto/include/mach/system.h	2009-08-18 21:28:52.714864000 -0700
@@ -34,13 +34,13 @@
 
 static inline void arch_reset(char mode)
 {
-	unsigned int val;
-
-	while (1) {
-		val = __raw_readl(COMCERTO_PHI_APB_FIFO_INTACK);
-		val |= 0x0100;
-		__raw_writel(val, COMCERTO_PHI_APB_FIFO_INTACK);
-	}
+	while(1) {
+        unsigned int i;
+        *(volatile u32*) APB_VADDR(0x100500d8) = 0;
+        *(volatile u32*) APB_VADDR(0x100500d0) = 0x100;
+        *(volatile u32*) APB_VADDR(0x100500d4) = 1;
+        for(i = 0; i < 10000; i++);
+        }
 }
 
 #endif /* __ASM_ARCH_SYSTEM_H */
