[POWERPC] Factor zImage's 44x reset code out of ebony.c
authorDavid Gibson <david@gibson.dropbear.id.au>
Wed, 13 Jun 2007 04:52:58 +0000 (14:52 +1000)
committerPaul Mackerras <paulus@samba.org>
Thu, 14 Jun 2007 12:30:16 +0000 (22:30 +1000)
The ebony_exit() function which resets the Ebony board should in fact
be common to most if not all 44x boards.  This moves the function out
into 44x.c, renaming it, so it can be used by other 44x platforms.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/boot/44x.c
arch/powerpc/boot/44x.h
arch/powerpc/boot/ebony.c

index d51377d9024f7807b0ca2dac0b52d5427b890ebd..bc3f570ff9ba51877891a8b0fd66b9697590b94c 100644 (file)
@@ -38,3 +38,19 @@ void ibm44x_fixup_memsize(void)
 
        dt_fixup_memory(0, memsize);
 }
+
+#define SPRN_DBCR0             0x134
+#define   DBCR0_RST_SYSTEM     0x30000000
+
+void ibm44x_dbcr_reset(void)
+{
+       unsigned long tmp;
+
+       asm volatile (
+               "mfspr  %0,%1\n"
+               "oris   %0,%0,%2@h\n"
+               "mtspr  %1,%0"
+               : "=&r"(tmp) : "i"(SPRN_DBCR0), "i"(DBCR0_RST_SYSTEM)
+               );
+
+}
index 7b129ad043e19494af4b727c4c87767e0286988b..0da4abf390ada5b1dee0a07462f76f2058db7908 100644 (file)
@@ -11,6 +11,8 @@
 #define _PPC_BOOT_44X_H_
 
 void ibm44x_fixup_memsize(void);
+
+void ibm44x_dbcr_reset(void);
 void ebony_init(void *mac0, void *mac1);
 
 #endif /* _PPC_BOOT_44X_H_ */
index b1251ee7a102f2e2ad429307fb0360620c8446f6..634985802006c6b8921d3d21bb7077d7adec998b 100644 (file)
@@ -102,26 +102,10 @@ static void ebony_fixups(void)
        dt_fixup_mac_addresses(ebony_mac0, ebony_mac1);
 }
 
-#define SPRN_DBCR0             0x134
-#define   DBCR0_RST_SYSTEM     0x30000000
-
-static void ebony_exit(void)
-{
-       unsigned long tmp;
-
-       asm volatile (
-               "mfspr  %0,%1\n"
-               "oris   %0,%0,%2@h\n"
-               "mtspr  %1,%0"
-               : "=&r"(tmp) : "i"(SPRN_DBCR0), "i"(DBCR0_RST_SYSTEM)
-               );
-
-}
-
 void ebony_init(void *mac0, void *mac1)
 {
        platform_ops.fixups = ebony_fixups;
-       platform_ops.exit = ebony_exit;
+       platform_ops.exit = ibm44x_dbcr_reset;
        ebony_mac0 = mac0;
        ebony_mac1 = mac1;
        ft_init(_dtb_start, _dtb_end - _dtb_start, 32);