Index: rombios.h =================================================================== RCS file: /cvsroot/bochs/bochs/bios/rombios.h,v retrieving revision 1.6 diff -u -d -p -r1.6 rombios.h --- rombios.h 26 Jan 2008 09:15:27 -0000 1.6 +++ rombios.h 13 Mar 2008 12:58:57 -0000 @@ -19,7 +19,7 @@ // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /* define it to include QEMU specific code */ -//#define BX_QEMU +#define BX_QEMU #ifndef LEGACY # define BX_ROMBIOS32 1 Index: rombios32.c =================================================================== RCS file: /cvsroot/bochs/bochs/bios/rombios32.c,v retrieving revision 1.24 diff -u -d -p -r1.24 rombios32.c --- rombios32.c 6 Mar 2008 20:18:20 -0000 1.24 +++ rombios32.c 13 Mar 2008 12:58:58 -0000 @@ -476,8 +476,19 @@ void smp_probe(void) writel(APIC_BASE + APIC_ICR_LOW, 0x000C4500); sipi_vector = AP_BOOT_ADDR >> 12; writel(APIC_BASE + APIC_ICR_LOW, 0x000C4600 | sipi_vector); + asm volatile( + "xor %%eax, %%eax \n\t" + "xor %%edx, %%edx \n\t" + "mov $0x10, %%ecx \n\t" + "wrmsr" + : : : "eax", "ecx", "edx"); +#ifndef BX_QEMU delay_ms(10); +#else + while (cmos_readb(0x5f) + 1 != readw((void *)CPU_COUNT_ADDR)) + ; +#endif smp_cpus = readw((void *)CPU_COUNT_ADDR); }