summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/luna88k/luna88k/machdep.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/sys/arch/luna88k/luna88k/machdep.c b/sys/arch/luna88k/luna88k/machdep.c
index 4d86938aa81..2991ee82ffc 100644
--- a/sys/arch/luna88k/luna88k/machdep.c
+++ b/sys/arch/luna88k/luna88k/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.33 2006/05/15 21:40:04 miod Exp $ */
+/* $OpenBSD: machdep.c,v 1.34 2006/10/30 14:46:35 aoyama Exp $ */
/*
* Copyright (c) 1998, 1999, 2000, 2001 Steve Murphree, Jr.
* Copyright (c) 1996 Nivas Madhur
@@ -1071,6 +1071,8 @@ luna88k_bootstrap()
#ifndef MULTIPROCESSOR
cpuid_t master_cpu;
#endif
+ cpuid_t cpu;
+ extern void m8820x_initialize_cpu(cpuid_t);
cmmu = &cmmu8820x;
@@ -1095,6 +1097,20 @@ luna88k_bootstrap()
set_cpu_number(master_cpu);
/*
+ * On the luna88k, secondary processors are not disabled while the
+ * kernel is initializing. We just initialized the CMMUs tied to the
+ * currently-running CPU; initialize the others with similar settings
+ * here as well.
+ */
+ for (cpu = 0; cpu < max_cpus; cpu++) {
+ if (cpu == master_cpu)
+ continue;
+ if (m88k_cpus[cpu].ci_alive == 0)
+ continue;
+ m8820x_initialize_cpu(cpu);
+ }
+
+ /*
* Now that set_cpu_number() set us with a valid cpu_info pointer,
* we need to initialize p_addr and curpcb before autoconf, for the
* fault handler to behave properly [except for badaddr() faults,