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

Commit 35499c01 authored by Paul Mackerras's avatar Paul Mackerras
Browse files

powerpc: Merge in 64-bit powermac support.



This brings in a lot of changes from arch/ppc64/kernel/pmac_*.c to
arch/powerpc/platforms/powermac/*.c and makes various minor tweaks
elsewhere.  On the powermac we now initialize ppc_md by copying
the whole pmac_md structure into it, which required some changes in
the ordering of initializations of individual fields of it.

Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent b6ba9281
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -290,6 +290,7 @@ config PPC_PMAC
config PPC_PMAC64
	bool
	depends on PPC_PMAC && POWER4
	select U3_DART
	default y

config PPC_PREP
+11 −14
Original line number Diff line number Diff line
@@ -1501,20 +1501,17 @@ copy_to_here:
	.section ".text";
	.align 2 ;

	.globl	pmac_secondary_start_1	
pmac_secondary_start_1:	
	.globl	__secondary_start_pmac_0
__secondary_start_pmac_0:
	/* NB the entries for cpus 0, 1, 2 must each occupy 8 bytes. */
	li	r24,0
	b	1f
	li	r24,1
	b	.pmac_secondary_start
	
	.globl pmac_secondary_start_2
pmac_secondary_start_2:	
	b	1f
	li	r24,2
	b	.pmac_secondary_start
	
	.globl pmac_secondary_start_3
pmac_secondary_start_3:
	b	1f
	li	r24,3
	b	.pmac_secondary_start
1:
	
_GLOBAL(pmac_secondary_start)
	/* turn on 64-bit mode */
+2 −2
Original line number Diff line number Diff line
@@ -772,7 +772,7 @@ static unsigned long __init prom_next_cell(int s, cell_t **cellp)
	}
	r = *p++;
#ifdef CONFIG_PPC64
	if (s) {
	if (s > 1) {
		r <<= 32;
		r |= *(p++);
	}
@@ -2059,7 +2059,7 @@ unsigned long __init prom_init(unsigned long r3, unsigned long r4,
	reloc_got2(-offset);
#endif

	__start(hdr, 0, 0);
	__start(hdr, KERNELBASE + offset, 0);

	return 0;
}
+2 −5
Original line number Diff line number Diff line
@@ -464,14 +464,11 @@ void __init machine_init(unsigned long dt_ptr, unsigned long phys)
	strlcpy(cmd_line, CONFIG_CMDLINE, sizeof(cmd_line));
#endif /* CONFIG_CMDLINE */

	platform_init();

#ifdef CONFIG_6xx
	ppc_md.power_save = ppc6xx_idle;
#endif
#ifdef CONFIG_POWER4
	ppc_md.power_save = power4_idle;
#endif

	platform_init();

	if (ppc_md.progress)
		ppc_md.progress("id mach(): done", 0x200);
+1 −1
Original line number Diff line number Diff line
ifeq ($(CONFIG_PPC32),y)
ifeq ($(CONFIG_PPC_MERGE),y)
obj-$(CONFIG_PPC_PMAC)		+= powermac/
endif
obj-$(CONFIG_4xx)		+= 4xx/
Loading