reset rombios32 area

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2403 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
bellard 2007-02-08 22:17:34 +00:00
parent 26a16623b8
commit 1193610e5d
2 changed files with 24 additions and 2 deletions

Binary file not shown.

View File

@ -1,10 +1,32 @@
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 Index: rombios.h
=================================================================== ===================================================================
RCS file: /cvsroot/bochs/bochs/bios/rombios.h,v RCS file: /cvsroot/bochs/bochs/bios/rombios.h,v
retrieving revision 1.3 retrieving revision 1.3
diff -u -w -r1.3 rombios.h diff -u -w -r1.3 rombios.h
--- rombios.h 3 Oct 2006 20:27:30 -0000 1.3 --- rombios.h 3 Oct 2006 20:27:30 -0000 1.3
+++ rombios.h 1 Nov 2006 19:16:34 -0000 +++ rombios.h 8 Feb 2007 21:57:48 -0000
@@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
@ -20,7 +42,7 @@ RCS file: /cvsroot/bochs/bochs/bios/rombios32.c,v
retrieving revision 1.8 retrieving revision 1.8
diff -u -w -r1.8 rombios32.c diff -u -w -r1.8 rombios32.c
--- rombios32.c 3 Oct 2006 20:27:30 -0000 1.8 --- rombios32.c 3 Oct 2006 20:27:30 -0000 1.8
+++ rombios32.c 1 Nov 2006 19:16:34 -0000 +++ rombios32.c 8 Feb 2007 21:57:48 -0000
@@ -852,6 +852,11 @@ @@ -852,6 +852,11 @@
int ioapic_id, i, len; int ioapic_id, i, len;
int mp_config_table_size; int mp_config_table_size;