qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 4/8] hw/arm/fsl-imx31: Wire up watchdog


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH 4/8] hw/arm/fsl-imx31: Wire up watchdog
Date: Sat, 14 Mar 2020 22:50:14 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1

On 3/14/20 6:27 PM, Guenter Roeck wrote:
With this patch, the watchdog on i.MX31 emulations is fully operational.

Signed-off-by: Guenter Roeck <address@hidden>
---
  hw/arm/fsl-imx31.c         | 6 ++++++
  include/hw/arm/fsl-imx31.h | 4 ++++
  2 files changed, 10 insertions(+)

diff --git a/hw/arm/fsl-imx31.c b/hw/arm/fsl-imx31.c
index 55e90d104b..cec7d0dd1b 100644
--- a/hw/arm/fsl-imx31.c
+++ b/hw/arm/fsl-imx31.c
@@ -63,6 +63,8 @@ static void fsl_imx31_init(Object *obj)
          sysbus_init_child_obj(obj, "gpio[*]", &s->gpio[i], sizeof(s->gpio[i]),
                                TYPE_IMX_GPIO);
      }
+
+    sysbus_init_child_obj(obj, "wdt", &s->wdt, sizeof(s->wdt), TYPE_IMX2_WDT);
  }
static void fsl_imx31_realize(DeviceState *dev, Error **errp)
@@ -205,6 +207,10 @@ static void fsl_imx31_realize(DeviceState *dev, Error 
**errp)
                                              gpio_table[i].irq));
      }
+ /* Watchdog */
+    object_property_set_bool(OBJECT(&s->wdt), true, "realized", &error_abort);
+    sysbus_mmio_map(SYS_BUS_DEVICE(&s->wdt), 0, FSL_IMX31_WDT_ADDR);
+
      /* On a real system, the first 16k is a `secure boot rom' */
      memory_region_init_rom(&s->secure_rom, NULL, "imx31.secure_rom",
                             FSL_IMX31_SECURE_ROM_SIZE, &err);
diff --git a/include/hw/arm/fsl-imx31.h b/include/hw/arm/fsl-imx31.h
index ac5ca9826a..dd8561b309 100644
--- a/include/hw/arm/fsl-imx31.h
+++ b/include/hw/arm/fsl-imx31.h
@@ -25,6 +25,7 @@
  #include "hw/timer/imx_epit.h"
  #include "hw/i2c/imx_i2c.h"
  #include "hw/gpio/imx_gpio.h"
+#include "hw/watchdog/wdt_imx2.h"
  #include "exec/memory.h"
  #include "target/arm/cpu.h"
@@ -49,6 +50,7 @@ typedef struct FslIMX31State {
      IMXEPITState   epit[FSL_IMX31_NUM_EPITS];
      IMXI2CState    i2c[FSL_IMX31_NUM_I2CS];
      IMXGPIOState   gpio[FSL_IMX31_NUM_GPIOS];
+    IMX2WdtState   wdt;
      MemoryRegion   secure_rom;
      MemoryRegion   rom;
      MemoryRegion   iram;
@@ -87,6 +89,8 @@ typedef struct FslIMX31State {
  #define FSL_IMX31_GPIO1_SIZE            0x4000
  #define FSL_IMX31_GPIO2_ADDR            0x53FD0000
  #define FSL_IMX31_GPIO2_SIZE            0x4000
+#define FSL_IMX31_WDT_ADDR              0x53FDC000
+#define FSL_IMX31_WDT_SIZE              0x4000
  #define FSL_IMX31_AVIC_ADDR             0x68000000
  #define FSL_IMX31_AVIC_SIZE             0x100
  #define FSL_IMX31_SDRAM0_ADDR           0x80000000


Missing Kconfig hunk:

-- >8 --
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
index 4cf8fa4967..8af023abde 100644
--- a/hw/arm/Kconfig
+++ b/hw/arm/Kconfig
@@ -366,6 +366,7 @@ config FSL_IMX31
     select SERIAL
     select IMX
     select IMX_I2C
+    select WDT_IMX2
     select LAN9118

 config FSL_IMX6
---

With it:
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]