linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 4/9 v3] Add starting of secondary 86xx CPUs.
@ 2006-06-17 22:52 Jon Loeliger
  2006-06-18  3:05 ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 3+ messages in thread
From: Jon Loeliger @ 2006-06-17 22:52 UTC (permalink / raw)
  To: linuxppc-dev

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: Wei Zhang <Wei.Zhang@freescale.com>
Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>
Signed-off-by: Jon Loeliger <jdl@freescale.com>

---

 arch/powerpc/kernel/head_32.S |   14 +++++++++++++-
 arch/powerpc/kernel/smp.c     |    2 +-
 arch/powerpc/mm/ppc_mmu_32.c  |    4 ++--
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S
index a0579e8..b25b259 100644
--- a/arch/powerpc/kernel/head_32.S
+++ b/arch/powerpc/kernel/head_32.S
@@ -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
 
 /*
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 530f7db..c5d179d 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -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
diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c
index ab5cd72..2ed43a4 100644
--- a/arch/powerpc/mm/ppc_mmu_32.c
+++ b/arch/powerpc/mm/ppc_mmu_32.c
@@ -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

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 4/9 v3] Add starting of secondary 86xx CPUs.
  2006-06-17 22:52 [PATCH 4/9 v3] Add starting of secondary 86xx CPUs Jon Loeliger
@ 2006-06-18  3:05 ` Benjamin Herrenschmidt
  2006-06-19 14:06   ` Jon Loeliger
  0 siblings, 1 reply; 3+ messages in thread
From: Benjamin Herrenschmidt @ 2006-06-18  3:05 UTC (permalink / raw)
  To: Jon Loeliger; +Cc: linuxppc-dev


> +	.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

The above looks generic enough... why not call it
__secondary_start_PIR ? :) Might be useful for other platforms I
reckon...

>  	.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

Looks good.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 4/9 v3] Add starting of secondary 86xx CPUs.
  2006-06-18  3:05 ` Benjamin Herrenschmidt
@ 2006-06-19 14:06   ` Jon Loeliger
  0 siblings, 0 replies; 3+ messages in thread
From: Jon Loeliger @ 2006-06-19 14:06 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev@ozlabs.org, Jon Loeliger

On Sat, 2006-06-17 at 22:05, Benjamin Herrenschmidt wrote:

> > +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
> 
> Looks good.

Excellent.  Thanks.

jdl

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-06-19 14:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-17 22:52 [PATCH 4/9 v3] Add starting of secondary 86xx CPUs Jon Loeliger
2006-06-18  3:05 ` Benjamin Herrenschmidt
2006-06-19 14:06   ` Jon Loeliger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).