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);

Reply via email to