summaryrefslogtreecommitdiffstats
path: root/sys/mips/sibyte
diff options
context:
space:
mode:
authorrrs <rrs@FreeBSD.org>2010-05-18 04:02:34 +0000
committerrrs <rrs@FreeBSD.org>2010-05-18 04:02:34 +0000
commit18ee1164c85a4089d15758777fad404f1ab4d526 (patch)
tree72521efcb11084c4147b9b26b50640dd58ffae14 /sys/mips/sibyte
parent70705cf1b2ddfd19fc7b93ffa18106141634aaad (diff)
downloadFreeBSD-src-18ee1164c85a4089d15758777fad404f1ab4d526.zip
FreeBSD-src-18ee1164c85a4089d15758777fad404f1ab4d526.tar.gz
Adds JC's cleanup patches that fix it so
we call an platform dependant topo function as well as clean up all the XLR specific ifdefs around smp platform init. Obtained from: JC
Diffstat (limited to 'sys/mips/sibyte')
-rw-r--r--sys/mips/sibyte/sb_machdep.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/mips/sibyte/sb_machdep.c b/sys/mips/sibyte/sb_machdep.c
index 559bf74..9841ced 100644
--- a/sys/mips/sibyte/sb_machdep.c
+++ b/sys/mips/sibyte/sb_machdep.c
@@ -344,9 +344,16 @@ platform_ipi_intrnum(void)
return (4);
}
+struct cpu_group *
+platform_smp_topo(void)
+{
+ return (smp_topo_none());
+}
+
void
platform_init_ap(int cpuid)
{
+ int ipi_int_mask, clock_int_mask;
KASSERT(cpuid == 1, ("AP has an invalid cpu id %d", cpuid));
@@ -356,6 +363,13 @@ platform_init_ap(int cpuid)
kseg0_map_coherent();
sb_intr_init(cpuid);
+
+ /*
+ * Unmask the clock and ipi interrupts.
+ */
+ clock_int_mask = hard_int_mask(5);
+ ipi_int_mask = hard_int_mask(platform_ipi_intrnum());
+ set_intr_mask(ALL_INT_MASK & ~(ipi_int_mask | clock_int_mask));
}
int
OpenPOWER on IntegriCloud