+Peter/Igor

On 15/2/25 03:16, Keith Packard via wrote:
This ensure that the CPU gets reset every time QEMU resets.

Signed-off-by: Keith Packard <kei...@keithp.com>
---
  target/rx/cpu.c | 11 ++++++++++-
  1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/target/rx/cpu.c b/target/rx/cpu.c
index 37a6fdd569..04dd34b310 100644
--- a/target/rx/cpu.c
+++ b/target/rx/cpu.c
@@ -27,6 +27,7 @@
  #include "hw/loader.h"
  #include "fpu/softfloat.h"
  #include "tcg/debug-assert.h"
+#include "system/reset.h"
static void rx_cpu_set_pc(CPUState *cs, vaddr value)
  {
@@ -129,6 +130,13 @@ static ObjectClass *rx_cpu_class_by_name(const char 
*cpu_model)
      return oc;
  }
+static void rx_cpu_reset(void *opaque)
+{
+    RXCPU *cpu = opaque;
+
+    cpu_reset(CPU(cpu));
+}
+
  static void rx_cpu_realize(DeviceState *dev, Error **errp)
  {
      CPUState *cs = CPU(dev);
@@ -142,9 +150,10 @@ static void rx_cpu_realize(DeviceState *dev, Error **errp)
      }
qemu_init_vcpu(cs);
-    cpu_reset(cs);
rcc->parent_realize(dev, errp);
+
+    qemu_register_reset(rx_cpu_reset, RX_CPU(cs));

Yeah. I guess this is part of some generic effort to generalize
CPU reset, previously started here
https://lore.kernel.org/qemu-devel/20230918160257.30127-1-phi...@linaro.org/
which led to another issue Igor is trying to solves:
https://lore.kernel.org/qemu-devel/20250207162048.1890669-1-imamm...@redhat.com/

  }
static void rx_cpu_set_irq(void *opaque, int no, int request)


Reply via email to