xemu/pc-bios/bios.diff
bellard 1193610e5d reset rombios32 area
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2403 c046a42c-6fe2-441c-8c8c-71466251a162
2007-02-08 22:17:34 +00:00

58 lines
1.6 KiB
Diff

Index: rombios.c
===================================================================
RCS file: /cvsroot/bochs/bochs/bios/rombios.c,v
retrieving revision 1.174
diff -u -w -r1.174 rombios.c
--- rombios.c 17 Oct 2006 16:48:05 -0000 1.174
+++ rombios.c 8 Feb 2007 21:57:48 -0000
@@ -9472,6 +9472,14 @@
mov eax, #0x00040000
call eax
+ ;; reset the memory (some boot loaders such as syslinux suppose
+ ;; that the memory is set to zero)
+ mov edi, #0x00040000
+ mov ecx, #0x40000 / 4
+ xor eax, eax
+ rep
+ stosd
+
;; return to 16 bit protected mode first
db 0xea
dd rombios32_10
Index: rombios.h
===================================================================
RCS file: /cvsroot/bochs/bochs/bios/rombios.h,v
retrieving revision 1.3
diff -u -w -r1.3 rombios.h
--- rombios.h 3 Oct 2006 20:27:30 -0000 1.3
+++ rombios.h 8 Feb 2007 21:57:48 -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.8
diff -u -w -r1.8 rombios32.c
--- rombios32.c 3 Oct 2006 20:27:30 -0000 1.8
+++ rombios32.c 8 Feb 2007 21:57:48 -0000
@@ -852,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