X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=pc-bios%2Fbios.diff;h=660d6d3347ea04a3a00443fe167ec70c8aac80d0;hb=d66846a14e191c75f4aa373623dd9a7aaa843ade;hp=e53b8c73303af856062d137d481c29cf924ca4fb;hpb=3f433d2c87d666e446b1cd45c52390d61edd189b;p=qemu diff --git a/pc-bios/bios.diff b/pc-bios/bios.diff index e53b8c7..660d6d3 100644 --- a/pc-bios/bios.diff +++ b/pc-bios/bios.diff @@ -1,43 +1,57 @@ Index: rombios.c =================================================================== RCS file: /cvsroot/bochs/bochs/bios/rombios.c,v -retrieving revision 1.108 -diff -u -w -r1.108 rombios.c ---- rombios.c 9 Feb 2004 16:48:50 -0000 1.108 -+++ rombios.c 16 May 2004 13:44:26 -0000 -@@ -2254,6 +2254,7 @@ - type = read_byte(get_SS(),buffer+1) & 0x1f; - removable = (read_byte(get_SS(),buffer+0) & 0x80) ? 1 : 0; - mode = read_byte(get_SS(),buffer+96) ? ATA_MODE_PIO32 : ATA_MODE_PIO16; -+ blksize = 2048; +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 - write_byte(ebda_seg,&EbdaData->ata.devices[device].device, type); - write_byte(ebda_seg,&EbdaData->ata.devices[device].removable, removable); -@@ -3781,7 +3782,17 @@ - write_word(ebda_seg, 0x0022, mouse_driver_offset); - write_word(ebda_seg, 0x0024, mouse_driver_seg); - mouse_flags_2 = read_byte(ebda_seg, 0x0027); -+ if (mouse_driver_offset == 0 && -+ mouse_driver_seg == 0) { -+ /* remove handler */ -+ if ( (mouse_flags_2 & 0x80) != 0 ) { -+ mouse_flags_2 &= ~0x80; -+ inhibit_mouse_int_and_events(); // disable IRQ12 and packets -+ } -+ } else { -+ /* install handler */ - mouse_flags_2 |= 0x80; -+ } - write_byte(ebda_seg, 0x0027, mouse_flags_2); - CLEAR_CF(); - regs.u.r8.ah = 0; -@@ -4409,7 +4420,8 @@ - mouse_flags_2 = read_byte(ebda_seg, 0x0027); ++ ;; 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 - if ( (mouse_flags_2 & 0x80) != 0x80 ) { -- BX_PANIC("int74_function:\n"); -+ // BX_PANIC("int74_function:\n"); -+ return; - } + #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; - package_count = mouse_flags_2 & 0x07; ++#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