diff options
| author | Aurelien Jarno <aurelien@aurel32.net> | 2010-01-30 20:41:33 +0100 |
|---|---|---|
| committer | Aurelien Jarno <aurelien@aurel32.net> | 2010-02-08 12:21:03 +0100 |
| commit | 37cc0b44b48fcb9f8d75105202d45e70ad1774ca (patch) | |
| tree | 17f8bf3a8a3b262caba7c88e32d7bd35f3c78b25 /hw/r2d.c | |
| parent | 5105c5564cc062f848c6602e911b1a0b75befef7 (diff) | |
| download | focaccia-qemu-37cc0b44b48fcb9f8d75105202d45e70ad1774ca.tar.gz focaccia-qemu-37cc0b44b48fcb9f8d75105202d45e70ad1774ca.zip | |
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 <aurelien@aurel32.net>
Diffstat (limited to 'hw/r2d.c')
| -rw-r--r-- | hw/r2d.c | 9 |
1 files 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; |