On 13/02/2024 13:03, Philippe Mathieu-Daudé wrote:
Inline cpu_create() in order to call
qdev_init_gpio_in_named_with_opaque()
before the CPU is realized.
Note that with the previous new patch included in the series,
qdev_init_gpio_in_named_with_opaque() should be replaced by
qdev_init_gpio_in_named() in the commit message above instead.
Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Peter Maydell <peter.mayd...@linaro.org>
Reviewed-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk>
---
hw/sparc/leon3.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
index d2be900988..d0ff4a2892 100644
--- a/hw/sparc/leon3.c
+++ b/hw/sparc/leon3.c
@@ -233,7 +233,9 @@ 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));
+ qdev_init_gpio_in_named(DEVICE(cpu), leon3_set_pil_in, "pil", 1);
+ qdev_realize(DEVICE(cpu), NULL, &error_fatal);
env = &cpu->env;
cpu_sparc_set_id(env, 0);
@@ -260,7 +262,6 @@ static void leon3_generic_hw_init(MachineState *machine)
/* Allocate IRQ manager */
irqmpdev = qdev_new(TYPE_GRLIB_IRQMP);
- qdev_init_gpio_in_named(DEVICE(cpu), leon3_set_pil_in, "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,
ATB,
Mark.