From 4a6435639781214a14f3c6054955e5ef16298d72 Mon Sep 17 00:00:00 2001 From: Blue Swirl Date: Sat, 7 Nov 2009 14:13:05 +0000 Subject: IDE: Fix reset handling Problem: x86 systems could not survive a few system_resets. Clear most of IDE state when reset. Implement the missing reset handlers. Signed-off-by: Blue Swirl --- hw/ide/mmio.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'hw/ide/mmio.c') diff --git a/hw/ide/mmio.c b/hw/ide/mmio.c index 84a20e5..cca883f 100644 --- a/hw/ide/mmio.c +++ b/hw/ide/mmio.c @@ -41,6 +41,13 @@ typedef struct { int shift; } MMIOState; +static void mmio_ide_reset(void *opaque) +{ + MMIOState *s = opaque; + + ide_bus_reset(&s->bus); +} + static uint32_t mmio_ide_read (void *opaque, target_phys_addr_t addr) { MMIOState *s = opaque; @@ -127,5 +134,6 @@ void mmio_ide_init (target_phys_addr_t membase, target_phys_addr_t membase2, cpu_register_physical_memory(membase, 16 << shift, mem1); cpu_register_physical_memory(membase2, 2 << shift, mem2); vmstate_register(0, &vmstate_ide_mmio, s); + qemu_register_reset(mmio_ide_reset, s); } -- cgit v1.1