On Mon, 2007-04-16 at 22:47 +0000, Thiemo Seufer wrote: > CVSROOT: /sources/qemu > Module name: qemu > Changes by: Thiemo Seufer <ths> 07/04/16 22:47:54 > > Modified files: > hw : pckbd.c > > Log message: > Support it_shift for mmapped pckbd. > > CVSWeb URLs: > http://cvs.savannah.gnu.org/viewcvs/qemu/hw/pckbd.c?cvsroot=qemu&r1=1.19&r2=1.20
Thanks for the update. Here's another small patch, based on the same idea of what is done for the memory-mapped serial ports and which seems useful to implement some targets: it may be needed not to register the I/O memory area in the pckbd driver but let the caller do it. Please take a look. -- J. Mayer <[EMAIL PROTECTED]> Never organized
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);