[POWERPC] Factor zImage's 44x reset code out of ebony.c

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>
This commit is contained in:
David Gibson 2007-06-13 14:52:58 +10:00 committed by Paul Mackerras
parent 4508dc21fe
commit 11123346bf
3 changed files with 19 additions and 17 deletions

View File

@ -38,3 +38,19 @@ void ibm44x_fixup_memsize(void)
dt_fixup_memory(0, memsize); 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)
);
}

View File

@ -11,6 +11,8 @@
#define _PPC_BOOT_44X_H_ #define _PPC_BOOT_44X_H_
void ibm44x_fixup_memsize(void); void ibm44x_fixup_memsize(void);
void ibm44x_dbcr_reset(void);
void ebony_init(void *mac0, void *mac1); void ebony_init(void *mac0, void *mac1);
#endif /* _PPC_BOOT_44X_H_ */ #endif /* _PPC_BOOT_44X_H_ */

View File

@ -102,26 +102,10 @@ static void ebony_fixups(void)
dt_fixup_mac_addresses(ebony_mac0, ebony_mac1); 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) void ebony_init(void *mac0, void *mac1)
{ {
platform_ops.fixups = ebony_fixups; platform_ops.fixups = ebony_fixups;
platform_ops.exit = ebony_exit; platform_ops.exit = ibm44x_dbcr_reset;
ebony_mac0 = mac0; ebony_mac0 = mac0;
ebony_mac1 = mac1; ebony_mac1 = mac1;
ft_init(_dtb_start, _dtb_end - _dtb_start, 32); ft_init(_dtb_start, _dtb_end - _dtb_start, 32);