From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MWouB-0003rz-5l for qemu-devel@nongnu.org; Fri, 31 Jul 2009 06:00:03 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MWouA-0003qN-8r for qemu-devel@nongnu.org; Fri, 31 Jul 2009 06:00:02 -0400 Received: from [199.232.76.173] (port=38652 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MWou9-0003q3-Ni for qemu-devel@nongnu.org; Fri, 31 Jul 2009 06:00:01 -0400 Received: from fg-out-1718.google.com ([72.14.220.158]:5891) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MWou9-00009f-4q for qemu-devel@nongnu.org; Fri, 31 Jul 2009 06:00:01 -0400 Received: by fg-out-1718.google.com with SMTP id l27so60550fgb.8 for ; Fri, 31 Jul 2009 03:00:00 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <32f1aa9e0907301915t52abb785s72f3508e599ecba4@mail.gmail.com> References: <32f1aa9e0907301915t52abb785s72f3508e599ecba4@mail.gmail.com> From: Blue Swirl Date: Fri, 31 Jul 2009 12:59:40 +0300 Message-ID: Subject: Re: [Qemu-devel] SPARC32 SMP booting problem Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Naruil Cc: qemu-devel@nongnu.org On Fri, Jul 31, 2009 at 5:15 AM, Naruil wrote: > We are trying to build a tiny SPARC32 Linux=C2=A0SMP=C2=A0kernel for debu= gging use. > The kernel is compiled with SMP support and Enhanced RTC. > > With the command line parameter > =C2=A0 =C2=A0-M SS-600MP -smp 1 > the kernel boots=C2=A0successfully. > But with > =C2=A0=C2=A0 -M SS-600MP -smp 2 > booting will hang at > SILO Version 1.4.13 > boot: > Loaded kernel version 2.6.18 > Loading initial ramdisk (3212127 bytes at 0x3000000 phys, 0x60000000 > virt)... > PROMLIB: obio_ranges 1 > Booting Linux... > In addition, Debian netinst cdrom will hang at this point if booting with > SMP. At least 4.0 r5 businesscard boots with -M SS-600MP -smp 2, you just have to wait a bit. If you use 'install -p' then the messages come even sooner. SMP mode has not been compiled in. > NetBSD with an GENERIC.MP kernel can only recognize one core when booting > with 2 cores. NetBSD 4.0 install CD says: cpu0 at mainbus0: mid 8: TMS390Z50 v0 or TMS390Z55 @ 170 MHz, on-chip FPU cpu0: physical 20K instruction (64 b/l), 16K data (32 b/l), 1024K external (32 b/l): cache enabled cpu at mainbus0 not configured So the CPU is found, but not used. > Is there some bug with the SPARC32 SMP implementation? > Or any one know how should I configure the SPARC32 Linux kernel to > boot=C2=A0correctly with SMP? IIRC Sparc32 SMP has been broken for ages. I actually use Splack 8.0 for my SMP tests, the default kernel (2.2.20pre2) is SMP-aware and is old enough to be known to work. If someone knows another boot CD image with a known good SMP kernel version, I'd be happy to test it. Of course bugs or unimplemented features are always a possibility. The MXCC and MBus registers used for SMP are not completely implemented. Linux does not use them directly but uses OpenBIOS to start other CPUs and this happens to work because the SMP start method (IPI) is supported by QEMU.