|  | Index: rombios.h | 
|  | =================================================================== | 
|  | RCS file: /cvsroot/bochs/bochs/bios/rombios.h,v | 
|  | retrieving revision 1.2 | 
|  | diff -u -w -r1.2 rombios.h | 
|  | --- rombios.h	1 Oct 2006 16:39:18 -0000	1.2 | 
|  | +++ rombios.h	2 Oct 2006 18:31:41 -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 | 
|  |  | 
|  | #define BX_ROMBIOS32     1 | 
|  | #define DEBUG_ROMBIOS    0 | 
|  | Index: rombios32.c | 
|  | =================================================================== | 
|  | RCS file: /cvsroot/bochs/bochs/bios/rombios32.c,v | 
|  | retrieving revision 1.6 | 
|  | diff -u -w -r1.6 rombios32.c | 
|  | --- rombios32.c	2 Oct 2006 06:29:37 -0000	1.6 | 
|  | +++ rombios32.c	2 Oct 2006 18:31:41 -0000 | 
|  | @@ -45,6 +45,8 @@ | 
|  | : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) \ | 
|  | : "0" (index)) | 
|  |  | 
|  | +#define wbinvd() asm volatile("wbinvd") | 
|  | + | 
|  | #define CPUID_APIC (1 << 9) | 
|  |  | 
|  | #define APIC_BASE    ((uint8_t *)0xfee00000) | 
|  | @@ -591,6 +593,7 @@ | 
|  | PCIDevice *d = &i440_pcidev; | 
|  | int v; | 
|  |  | 
|  | +    wbinvd(); | 
|  | v = pci_config_readb(d, 0x59); | 
|  | v = (v & 0x0f) | (0x10); | 
|  | pci_config_writeb(d, 0x59, v); | 
|  | @@ -645,7 +648,7 @@ | 
|  | outb(0xb3, 0x01); | 
|  |  | 
|  | /* raise an SMI interrupt */ | 
|  | -    outb(0xb2, 0x01); | 
|  | +    outb(0xb2, 0x00); | 
|  |  | 
|  | /* wait until SMM code executed */ | 
|  | while (inb(0xb3) != 0x00); | 
|  | @@ -656,6 +659,7 @@ | 
|  | /* copy the SMM code */ | 
|  | memcpy((void *)0xa8000, &smm_code_start, | 
|  | &smm_code_end - &smm_code_start); | 
|  | +    wbinvd(); | 
|  |  | 
|  | /* close the SMM memory window and enable normal SMM */ | 
|  | pci_config_writeb(&i440_pcidev, 0x72, 0x02 | 0x08); | 
|  | @@ -848,6 +852,11 @@ | 
|  | int ioapic_id, i, len; | 
|  | int mp_config_table_size; | 
|  |  | 
|  | +#ifdef BX_QEMU | 
|  | +    if (smp_cpus <= 1) | 
|  | +        return; | 
|  | +#endif | 
|  | + | 
|  | #ifdef BX_USE_EBDA_TABLES | 
|  | mp_config_table = (uint8_t *)(ram_size - ACPI_DATA_SIZE - MPTABLE_MAX_SIZE); | 
|  | #else |