Actually this has been test before. http://lists.gnu.org/archive/html/qemu-devel/2006-08/msg00512.html
I've tested Debian 3.1 (with Linux 2.4.27.3) and Debian 4.0 (with Linux 2.6.18.6), on both qemu 0.10.6 and 0.12.3, emulating machine is set to SS-20. 1. non-smp kernel successfully boots with both -smp 1 or -smp 2. 2. smp kernel can only boot with -smp 1. (The 2.6 kernel is cross compiled by gcc 4.2.4 since no binary package is available) Some investigation with qemu's debug message and Linux kernel dump (the 2.6 kernel) shows that 1. When the boot cpu tries to start cpu 1, cpu 1 calls local_irq_enable. After that, cpu 1 get's lot's of level 14 interrupt. 2. Printing out the executed TBs' pc values shows that kernel interrupt handler is executed. 3. Qemu's do_interrupt debug message shows that cpu 1 always get level 14 interrupt at the same pc, which is the nop instruction just after the "mov %g1, %psr" instruction. I guess that the interrupt is not cleared even after the execution of the interrupt handler. I've found debian installation report which boots smp linux kernel, so I thinks this problem is caused by qemu? I'm tring to fix this problem but I'm not familiar with sparc architecture, is there any clue? -- Best regards, Chen Yufei