Commit e41c0f263f0daefa338812f161bd59de5a94ccb6
1 parent
52ccc5e0
Enhance PC kbd debugging (patch from Hervé Poussineau)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3972 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
9 additions
and
6 deletions
hw/pckbd.c
| @@ -30,9 +30,6 @@ | @@ -30,9 +30,6 @@ | ||
| 30 | /* debug PC keyboard */ | 30 | /* debug PC keyboard */ |
| 31 | //#define DEBUG_KBD | 31 | //#define DEBUG_KBD |
| 32 | 32 | ||
| 33 | -/* debug PC keyboard : only mouse */ | ||
| 34 | -//#define DEBUG_MOUSE | ||
| 35 | - | ||
| 36 | /* Keyboard Controller Commands */ | 33 | /* Keyboard Controller Commands */ |
| 37 | #define KBD_CCMD_READ_MODE 0x20 /* Read mode bits */ | 34 | #define KBD_CCMD_READ_MODE 0x20 /* Read mode bits */ |
| 38 | #define KBD_CCMD_WRITE_MODE 0x60 /* Write mode bits */ | 35 | #define KBD_CCMD_WRITE_MODE 0x60 /* Write mode bits */ |
| @@ -283,11 +280,17 @@ static void kbd_write_command(void *opaque, uint32_t addr, uint32_t val) | @@ -283,11 +280,17 @@ static void kbd_write_command(void *opaque, uint32_t addr, uint32_t val) | ||
| 283 | static uint32_t kbd_read_data(void *opaque, uint32_t addr) | 280 | static uint32_t kbd_read_data(void *opaque, uint32_t addr) |
| 284 | { | 281 | { |
| 285 | KBDState *s = opaque; | 282 | KBDState *s = opaque; |
| 283 | + uint32_t val; | ||
| 286 | 284 | ||
| 287 | if (s->pending == KBD_PENDING_AUX) | 285 | if (s->pending == KBD_PENDING_AUX) |
| 288 | - return ps2_read_data(s->mouse); | 286 | + val = ps2_read_data(s->mouse); |
| 287 | + else | ||
| 288 | + val = ps2_read_data(s->kbd); | ||
| 289 | 289 | ||
| 290 | - return ps2_read_data(s->kbd); | 290 | +#if defined(DEBUG_KBD) |
| 291 | + printf("kbd: read data=0x%02x\n", val); | ||
| 292 | +#endif | ||
| 293 | + return val; | ||
| 291 | } | 294 | } |
| 292 | 295 | ||
| 293 | static void kbd_write_data(void *opaque, uint32_t addr, uint32_t val) | 296 | static void kbd_write_data(void *opaque, uint32_t addr, uint32_t val) |
| @@ -439,7 +442,7 @@ void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq, | @@ -439,7 +442,7 @@ void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq, | ||
| 439 | kbd_reset(s); | 442 | kbd_reset(s); |
| 440 | register_savevm("pckbd", 0, 3, kbd_save, kbd_load, s); | 443 | register_savevm("pckbd", 0, 3, kbd_save, kbd_load, s); |
| 441 | s_io_memory = cpu_register_io_memory(0, kbd_mm_read, kbd_mm_write, s); | 444 | s_io_memory = cpu_register_io_memory(0, kbd_mm_read, kbd_mm_write, s); |
| 442 | - cpu_register_physical_memory(base, 8 << it_shift, s_io_memory); | 445 | + cpu_register_physical_memory(base, 2 << it_shift, s_io_memory); |
| 443 | 446 | ||
| 444 | s->kbd = ps2_kbd_init(kbd_update_kbd_irq, s); | 447 | s->kbd = ps2_kbd_init(kbd_update_kbd_irq, s); |
| 445 | s->mouse = ps2_mouse_init(kbd_update_aux_irq, s); | 448 | s->mouse = ps2_mouse_init(kbd_update_aux_irq, s); |