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

Commit ee0339f2 authored by Jon Loeliger's avatar Jon Loeliger Committed by Paul Mackerras
Browse files

[POWERPC] Add starting of secondary 86xx CPUs.



Clear the high BATS during load_up_mmu if FTR_HAS_HIGH_BATS.
Allow just a bit more time for secondary CPUs to phone home.

Signed-off-by: default avatarWei Zhang <Wei.Zhang@freescale.com>
Signed-off-by: default avatarHaiying Wang <Haiying.Wang@freescale.com>
Signed-off-by: default avatarJon Loeliger <jdl@freescale.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 9674ed38
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -973,6 +973,13 @@ __secondary_start_gemini:
        b       __secondary_start
#endif /* CONFIG_GEMINI */

	.globl __secondary_start_mpc86xx
__secondary_start_mpc86xx:
	mfspr	r3, SPRN_PIR
	stw	r3, __secondary_hold_acknowledge@l(0)
	mr	r24, r3			/* cpu # */
	b	__secondary_start

	.globl	__secondary_start_pmac_0
__secondary_start_pmac_0:
	/* NB the entries for cpus 0, 1, 2 must each occupy 8 bytes. */
@@ -1088,7 +1095,12 @@ load_up_mmu:
	LOAD_BAT(1,r3,r4,r5)
	LOAD_BAT(2,r3,r4,r5)
	LOAD_BAT(3,r3,r4,r5)

BEGIN_FTR_SECTION
	LOAD_BAT(4,r3,r4,r5)
	LOAD_BAT(5,r3,r4,r5)
	LOAD_BAT(6,r3,r4,r5)
	LOAD_BAT(7,r3,r4,r5)
END_FTR_SECTION_IFSET(CPU_FTR_HAS_HIGH_BATS)
	blr

/*
+1 −1
Original line number Diff line number Diff line
@@ -492,7 +492,7 @@ int __devinit __cpu_up(unsigned int cpu)
	 * -- Cort
	 */
	if (system_state < SYSTEM_RUNNING)
		for (c = 5000; c && !cpu_callin_map[cpu]; c--)
		for (c = 50000; c && !cpu_callin_map[cpu]; c--)
			udelay(100);
#ifdef CONFIG_HOTPLUG_CPU
	else
+2 −2
Original line number Diff line number Diff line
@@ -43,13 +43,13 @@ unsigned long _SDR1;
union ubat {			/* BAT register values to be loaded */
	BAT	bat;
	u32	word[2];
} BATS[4][2];			/* 4 pairs of IBAT, DBAT */
} BATS[8][2];			/* 8 pairs of IBAT, DBAT */

struct batrange {		/* stores address ranges mapped by BATs */
	unsigned long start;
	unsigned long limit;
	unsigned long phys;
} bat_addrs[4];
} bat_addrs[8];

/*
 * Return PA for this VA if it is mapped by a BAT, or 0