Index: sys/arch/sparc64/sparc64/autoconf.c =================================================================== RCS file: /cvsroot/src/sys/arch/sparc64/sparc64/autoconf.c,v retrieving revision 1.207 diff -u -r1.207 autoconf.c --- sys/arch/sparc64/sparc64/autoconf.c 16 Dec 2015 08:01:19 -0000 1.207 +++ sys/arch/sparc64/sparc64/autoconf.c 16 Apr 2016 21:01:05 -0000 @@ -216,6 +216,8 @@ if (l > icache_line_size) icache_line_size = l; } + if (CPU_ISSUN4V) + sparc_ncpus = 1; #else /* #define sparc_ncpus 1 */ icache_line_size = dcache_line_size = 8; /* will be fixed later */ @@ -629,12 +631,17 @@ node = findroot(); + int cpu_count = 0; /* first early device to be configured is the CPU */ for (node = OF_child(node); node; node = OF_peer(node)) { if (OF_getprop(node, "device_type", sbuf, sizeof(sbuf)) <= 0) continue; if (strcmp(sbuf, "cpu") != 0) continue; + cpu_count++; + /* XXX sun4v MP is not working yet so stick with one cpu */ + if (CPU_ISSUN4V && (cpu_count > sparc_ncpus)) + continue; memset(&ma, 0, sizeof(ma)); ma.ma_bustag = &mainbus_space_tag; ma.ma_dmatag = &mainbus_dma_tag;