[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 9/9] hw/arm/tosa: Fix reset handling
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PULL 9/9] hw/arm/tosa: Fix reset handling |
Date: |
Fri, 28 Oct 2016 15:59:24 +0100 |
From: Guenter Roeck <address@hidden>
Using the CPU reset handler for resets triggered by writing into
gpio pins other than GPIO01 is not appropriate and does not work,
since the reset triggered by writing into GPIO01 is configurable.
Use a separate reset handler for tosa to reset the entire system
and not just the CPU.
Signed-off-by: Guenter Roeck <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>
---
hw/arm/tosa.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/hw/arm/tosa.c b/hw/arm/tosa.c
index 2db6650..1ee12f4 100644
--- a/hw/arm/tosa.c
+++ b/hw/arm/tosa.c
@@ -25,6 +25,7 @@
#include "sysemu/block-backend.h"
#include "hw/sysbus.h"
#include "exec/address-spaces.h"
+#include "sysemu/sysemu.h"
#define TOSA_RAM 0x04000000
#define TOSA_ROM 0x00800000
@@ -86,6 +87,12 @@ static void tosa_out_switch(void *opaque, int line, int
level)
}
}
+static void tosa_reset(void *opaque, int line, int level)
+{
+ if (level) {
+ qemu_system_reset_request();
+ }
+}
static void tosa_gpio_setup(PXA2xxState *cpu,
DeviceState *scp0,
@@ -93,13 +100,16 @@ static void tosa_gpio_setup(PXA2xxState *cpu,
TC6393xbState *tmio)
{
qemu_irq *outsignals = qemu_allocate_irqs(tosa_out_switch, cpu, 4);
+ qemu_irq reset;
+
/* MMC/SD host */
pxa2xx_mmci_handlers(cpu->mmc,
qdev_get_gpio_in(scp0, TOSA_GPIO_SD_WP),
qemu_irq_invert(qdev_get_gpio_in(cpu->gpio,
TOSA_GPIO_nSD_DETECT)));
/* Handle reset */
- qdev_connect_gpio_out(cpu->gpio, TOSA_GPIO_ON_RESET, cpu->reset);
+ reset = qemu_allocate_irq(tosa_reset, cpu, 0);
+ qdev_connect_gpio_out(cpu->gpio, TOSA_GPIO_ON_RESET, reset);
/* PCMCIA signals: card's IRQ and Card-Detect */
pxa2xx_pcmcia_set_irq_cb(cpu->pcmcia[0],
--
2.7.4
- [Qemu-devel] [PULL 0/9] target-arm queue, Peter Maydell, 2016/10/28
- [Qemu-devel] [PULL 8/9] hw/arm/spitz: Fix reset handling, Peter Maydell, 2016/10/28
- [Qemu-devel] [PULL 7/9] arm: virt: add PMU property to mach-virt machine type, Peter Maydell, 2016/10/28
- [Qemu-devel] [PULL 3/9] hw/arm/pxa2xx: Set value default values for CCCR and CKEN on PXA255, Peter Maydell, 2016/10/28
- [Qemu-devel] [PULL 9/9] hw/arm/tosa: Fix reset handling,
Peter Maydell <=
- [Qemu-devel] [PULL 5/9] char: cadence: correct reset value for baud rate registers, Peter Maydell, 2016/10/28
- [Qemu-devel] [PULL 4/9] versatilepb: do not run if user asks for more than 256MB RAM, Peter Maydell, 2016/10/28
- [Qemu-devel] [PULL 6/9] arm: Add an option to turn on/off vPMU support, Peter Maydell, 2016/10/28
- [Qemu-devel] [PULL 1/9] i.MX: Fix GPIO ISR register write, Peter Maydell, 2016/10/28
- [Qemu-devel] [PULL 2/9] arm: cubieboard: Add support for initrd, Peter Maydell, 2016/10/28
- Re: [Qemu-devel] [PULL 0/9] target-arm queue, Peter Maydell, 2016/10/31