aboutsummaryrefslogtreecommitdiff
path: root/pc-bios/bios.diff
blob: 16b9887710ebcf226bef241491bcefaa48850bb5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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	28 Mar 2008 10:22:04 -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	28 Mar 2008 10:22:04 -0000
@@ -477,7 +477,12 @@ void smp_probe(void)
         sipi_vector = AP_BOOT_ADDR >> 12;
         writel(APIC_BASE + APIC_ICR_LOW, 0x000C4600 | sipi_vector);
 
+#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);
     }
Index: rombios32start.S
===================================================================
RCS file: /cvsroot/bochs/bochs/bios/rombios32start.S,v
retrieving revision 1.4
diff -u -d -p -r1.4 rombios32start.S
--- rombios32start.S	26 Jan 2008 09:15:27 -0000	1.4
+++ rombios32start.S	28 Mar 2008 10:22:04 -0000
@@ -42,7 +42,7 @@ _start:
 smp_ap_boot_code_start:
   xor %ax, %ax
   mov %ax, %ds
-  incw CPU_COUNT_ADDR
+  lock incw CPU_COUNT_ADDR
 1:
   hlt
   jmp 1b