diff options
-rw-r--r-- | sys/arch/sparc64/conf/GENERIC.MP | 3 | ||||
-rw-r--r-- | sys/arch/sparc64/sparc64/cpu.c | 8 |
2 files changed, 9 insertions, 2 deletions
diff --git a/sys/arch/sparc64/conf/GENERIC.MP b/sys/arch/sparc64/conf/GENERIC.MP index 42cb04e1086..f3c03f0250b 100644 --- a/sys/arch/sparc64/conf/GENERIC.MP +++ b/sys/arch/sparc64/conf/GENERIC.MP @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC.MP,v 1.3 2008/07/06 08:53:38 kettenis Exp $ +# $OpenBSD: GENERIC.MP,v 1.4 2008/07/12 14:26:07 kettenis Exp $ include "arch/sparc64/conf/GENERIC" @@ -8,3 +8,4 @@ option MULTIPROCESSOR cpu* at mainbus? cpu* at ssm? cpu* at cmp? +cpu* at core? diff --git a/sys/arch/sparc64/sparc64/cpu.c b/sys/arch/sparc64/sparc64/cpu.c index f4bf09af42c..fbd6d202875 100644 --- a/sys/arch/sparc64/sparc64/cpu.c +++ b/sys/arch/sparc64/sparc64/cpu.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cpu.c,v 1.43 2008/07/12 07:37:25 kettenis Exp $ */ +/* $OpenBSD: cpu.c,v 1.44 2008/07/12 14:26:07 kettenis Exp $ */ /* $NetBSD: cpu.c,v 1.13 2001/05/26 21:27:15 chs Exp $ */ /* @@ -209,6 +209,12 @@ cpu_match(parent, vcf, aux) if (portid != cpus->ci_upaid) return (0); +#else + /* XXX Only attach the first thread of a core for now. */ + if (OF_getprop(OF_parent(ma->ma_node), "device_type", + buf, sizeof(buf)) >= 0 && strcmp(buf, "core") == 0 && + (getpropint(ma->ma_node, "cpuid", -1) % 2) == 1) + return (0); #endif return (1); |