Index: vl.h =================================================================== RCS file: /sources/qemu/qemu/vl.h,v retrieving revision 1.216 diff -u -d -d -p -r1.216 vl.h --- vl.h 17 Apr 2007 16:28:29 -0000 1.216 +++ vl.h 18 Apr 2007 09:23:43 -0000 @@ -1035,8 +1035,9 @@ void *vmmouse_init(void *m); /* pckbd.c */ -void i8042_init(qemu_irq kbd_irq, qemu_irq mouse_irq, uint32_t io_base); -void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq, target_ulong base, int it_shift); +void i8042_init(qemu_irq kdb_irq, qemu_irq mouse_irq, uint32_t io_base); +void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq, + target_ulong base, int it_shift, int ioregister); /* mc146818rtc.c */ Index: hw/pckbd.c =================================================================== RCS file: /sources/qemu/qemu/hw/pckbd.c,v retrieving revision 1.20 diff -u -d -d -p -r1.20 pckbd.c --- hw/pckbd.c 16 Apr 2007 22:47:54 -0000 1.20 +++ hw/pckbd.c 18 Apr 2007 09:23:43 -0000 @@ -422,7 +421,7 @@ void kbd_mm_writeb (void *opaque, target }; void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq, target_ulong base, - int it_shift) + int it_shift, int ioregister) { KBDState *s = &kbd_state; int s_io_memory; @@ -434,8 +493,10 @@ void i8042_mm_init(qemu_irq kbd_irq, qem kbd_reset(s); register_savevm("pckbd", 0, 3, kbd_save, kbd_load, s); - s_io_memory = cpu_register_io_memory(0, kbd_mm_read, kbd_mm_write, s); - cpu_register_physical_memory(base, 8 << it_shift, s_io_memory); + if (ioregister) { + s_io_memory = cpu_register_io_memory(0, kbd_mm_read, kbd_mm_write, s); + cpu_register_physical_memory(base, 8 << it_shift, s_io_memory); + } s->kbd = ps2_kbd_init(kbd_update_kbd_irq, s); s->mouse = ps2_mouse_init(kbd_update_aux_irq, s);