Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 11123346 authored by David Gibson's avatar David Gibson Committed by Paul Mackerras
Browse files

[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: default avatarDavid Gibson <david@gibson.dropbear.id.au>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 4508dc21
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
@@ -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_ */
+1 −17
Original line number Diff line number Diff line
@@ -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);