From 37cc0b44b48fcb9f8d75105202d45e70ad1774ca Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Sat, 30 Jan 2010 20:41:33 +0100 Subject: [PATCH] SH4/R2D: fix poweroff The write the the PA_POWOFF register is currently ignored. Fix that by calling qemu_system_shutdown_request() when a poweroff is requested. Signed-off-by: Aurelien Jarno --- hw/r2d.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/hw/r2d.c b/hw/r2d.c index e4c02f05ef..8769a12221 100644 --- a/hw/r2d.c +++ b/hw/r2d.c @@ -66,7 +66,6 @@ typedef struct { uint16_t keyctlclr; uint16_t pad0; uint16_t pad1; - uint16_t powoff; uint16_t verreg; uint16_t inport; uint16_t outport; @@ -128,7 +127,7 @@ static uint32_t r2d_fpga_read(void *opaque, target_phys_addr_t addr) case PA_OUTPORT: return s->outport; case PA_POWOFF: - return s->powoff; + return 0x00; case PA_VERREG: return 0x10; } @@ -150,8 +149,10 @@ r2d_fpga_write(void *opaque, target_phys_addr_t addr, uint32_t value) s->outport = value; break; case PA_POWOFF: - s->powoff = value; - break; + if (value & 1) { + qemu_system_shutdown_request(); + } + break; case PA_VERREG: /* Discard writes */ break;