aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel
diff options
context:
space:
mode:
authorJon Loeliger <jdl@jdl.com>2006-06-17 18:52:44 -0400
committerPaul Mackerras <paulus@samba.org>2006-06-21 01:01:28 -0400
commitee0339f205d60375c5ce1653c0dc318c6ec72668 (patch)
tree8c4e46f6645224d88b26fed0a8c5ff031f233952 /arch/powerpc/kernel
parent9674ed38d8e4a9ce15c61b4306ef803cad0e1dc0 (diff)
[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: Wei Zhang <Wei.Zhang@freescale.com> Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com> Signed-off-by: Jon Loeliger <jdl@freescale.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r--arch/powerpc/kernel/head_32.S14
-rw-r--r--arch/powerpc/kernel/smp.c2
2 files changed, 14 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S
index a0579e859b21..b25b25902d15 100644
--- a/arch/powerpc/kernel/head_32.S
+++ b/arch/powerpc/kernel/head_32.S
@@ -973,6 +973,13 @@ __secondary_start_gemini:
973 b __secondary_start 973 b __secondary_start
974#endif /* CONFIG_GEMINI */ 974#endif /* CONFIG_GEMINI */
975 975
976 .globl __secondary_start_mpc86xx
977__secondary_start_mpc86xx:
978 mfspr r3, SPRN_PIR
979 stw r3, __secondary_hold_acknowledge@l(0)
980 mr r24, r3 /* cpu # */
981 b __secondary_start
982
976 .globl __secondary_start_pmac_0 983 .globl __secondary_start_pmac_0
977__secondary_start_pmac_0: 984__secondary_start_pmac_0:
978 /* NB the entries for cpus 0, 1, 2 must each occupy 8 bytes. */ 985 /* NB the entries for cpus 0, 1, 2 must each occupy 8 bytes. */
@@ -1088,7 +1095,12 @@ load_up_mmu:
1088 LOAD_BAT(1,r3,r4,r5) 1095 LOAD_BAT(1,r3,r4,r5)
1089 LOAD_BAT(2,r3,r4,r5) 1096 LOAD_BAT(2,r3,r4,r5)
1090 LOAD_BAT(3,r3,r4,r5) 1097 LOAD_BAT(3,r3,r4,r5)
1091 1098BEGIN_FTR_SECTION
1099 LOAD_BAT(4,r3,r4,r5)
1100 LOAD_BAT(5,r3,r4,r5)
1101 LOAD_BAT(6,r3,r4,r5)
1102 LOAD_BAT(7,r3,r4,r5)
1103END_FTR_SECTION_IFSET(CPU_FTR_HAS_HIGH_BATS)
1092 blr 1104 blr
1093 1105
1094/* 1106/*
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 530f7dba0bd2..c5d179d4f818 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -492,7 +492,7 @@ int __devinit __cpu_up(unsigned int cpu)
492 * -- Cort 492 * -- Cort
493 */ 493 */
494 if (system_state < SYSTEM_RUNNING) 494 if (system_state < SYSTEM_RUNNING)
495 for (c = 5000; c && !cpu_callin_map[cpu]; c--) 495 for (c = 50000; c && !cpu_callin_map[cpu]; c--)
496 udelay(100); 496 udelay(100);
497#ifdef CONFIG_HOTPLUG_CPU 497#ifdef CONFIG_HOTPLUG_CPU
498 else 498 else