diff options
author | rrs <rrs@FreeBSD.org> | 2010-05-18 04:02:34 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2010-05-18 04:02:34 +0000 |
commit | 18ee1164c85a4089d15758777fad404f1ab4d526 (patch) | |
tree | 72521efcb11084c4147b9b26b50640dd58ffae14 /sys/mips/sibyte | |
parent | 70705cf1b2ddfd19fc7b93ffa18106141634aaad (diff) | |
download | FreeBSD-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.c | 14 |
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 |