patch-2.2.18 linux/include/asm-arm/arch-ebsa285/system.h

Next file: linux/include/asm-arm/arch-ebsa285/time.h
Previous file: linux/include/asm-arm/arch-ebsa285/memory.h
Back to the patch index
Back to the overall index

diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.17/include/asm-arm/arch-ebsa285/system.h linux/include/asm-arm/arch-ebsa285/system.h
@@ -8,28 +8,17 @@
 #include <asm/hardware.h>
 #include <asm/leds.h>
 
+#define arch_do_idle()		processor.u.armv3v4._do_idle()
+
 extern __inline__ void arch_reset(char mode)
 {
-	cli();
-
 	if (mode == 's') {
-		__asm__ volatile (
-		"mov	lr, #0x41000000		@ prepare to jump to ROM
-		 mov	r0, #0x130
-		 mcr	p15, 0, r0, c1, c0	@ MMU off
-		 mcr	p15, 0, ip, c7, c7	@ flush caches
-		 mov	pc, lr" : : : "cc");
+		/*
+		 * Jump into ROM
+		 */
+		processor.u.armv3v4.reset(0x41000000);
 	} else {
-		if (machine_is_ebsa285() || machine_is_co285()) {
-			/* To reboot, we set up the 21285 watchdog and
-			 * enable it.  We then wait for it to timeout.
-			 */
-			*CSR_TIMER4_LOAD = 0x8000;
-			*CSR_TIMER4_CNTL = TIMER_CNTL_ENABLE |
-					   TIMER_CNTL_AUTORELOAD |
-					   TIMER_CNTL_DIV16;
-			*CSR_SA110_CNTL |= 1 << 13;
-		} else if (machine_is_netwinder()) {
+		if (machine_is_netwinder()) {
 			/* open up the SuperIO chip
 			 */
 			outb(0x87, 0x370);
@@ -48,6 +37,15 @@
 			/* set a RED LED and toggle WD_TIMER for rebooting
 			 */
 			outb(0xc4, 0x338);
+		} else {
+			/* To reboot, we set up the 21285 watchdog and
+			 * enable it.  We then wait for it to timeout.
+			 */
+			*CSR_TIMER4_LOAD = 0x8000;
+			*CSR_TIMER4_CNTL = TIMER_CNTL_ENABLE |
+					   TIMER_CNTL_AUTORELOAD |
+					   TIMER_CNTL_DIV16;
+			*CSR_SA110_CNTL |= 1 << 13;
 		}
 	}
 }

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)