qemu-ppc
[Top][All Lists]
Advanced

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

Re: [PATCH v3 10/11] hw/sparc/leon3: Initialize GPIO before realizing CP


From: Mark Cave-Ayland
Subject: Re: [PATCH v3 10/11] hw/sparc/leon3: Initialize GPIO before realizing CPU devices
Date: Fri, 9 Feb 2024 21:48:41 +0000
User-agent: Mozilla Thunderbird

On 08/02/2024 18:12, Philippe Mathieu-Daudé wrote:

Inline cpu_create() in order to call
qdev_init_gpio_in_named_with_opaque()
before the CPU is realized.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
  hw/sparc/leon3.c | 7 ++++---
  1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
index 0df5fc949d..0e1d749306 100644
--- a/hw/sparc/leon3.c
+++ b/hw/sparc/leon3.c
@@ -234,8 +234,11 @@ static void leon3_generic_hw_init(MachineState *machine)
      APBPnp *apb_pnp;
/* Init CPU */
-    cpu = SPARC_CPU(cpu_create(machine->cpu_type));
+    cpu = SPARC_CPU(object_new(machine->cpu_type));
      env = &cpu->env;
+    qdev_init_gpio_in_named_with_opaque(DEVICE(cpu), leon3_set_pil_in,
+                                        env, "pil", 1);
+    qdev_realize(DEVICE(cpu), NULL, &error_fatal);

I know it's not part of this patch, but I think that qdev_init_gpio_in_named_with_opaque() can be replaced with just qdev_init_gpio_in_named(), and leon3_set_pil_in() updated to take CPUState.

      cpu_sparc_set_id(env, 0);
@@ -261,8 +264,6 @@ static void leon3_generic_hw_init(MachineState *machine) /* Allocate IRQ manager */
      irqmpdev = qdev_new(TYPE_GRLIB_IRQMP);
-    qdev_init_gpio_in_named_with_opaque(DEVICE(cpu), leon3_set_pil_in,
-                                        env, "pil", 1);
      sysbus_realize_and_unref(SYS_BUS_DEVICE(irqmpdev), &error_fatal);
      sysbus_mmio_map(SYS_BUS_DEVICE(irqmpdev), 0, LEON3_IRQMP_OFFSET);
      qdev_connect_gpio_out_named(irqmpdev, "grlib-irq", 0,

Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.




reply via email to

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