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


Reply via email to