Skip to content

Commit

Permalink
[POWERPC] Factor zImage's 44x reset code out of ebony.c
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
David Gibson authored and Paul Mackerras committed Jun 14, 2007
1 parent 4508dc2 commit 1112334
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 17 deletions.
16 changes: 16 additions & 0 deletions arch/powerpc/boot/44x.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
);

}
2 changes: 2 additions & 0 deletions arch/powerpc/boot/44x.h
Original file line number Diff line number Diff line change
Expand Up @@ -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_ */
18 changes: 1 addition & 17 deletions arch/powerpc/boot/ebony.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 1112334

Please sign in to comment.