On Tue, Apr 29, 2025 at 02:21:55PM +0100, Peter Maydell wrote:
> Currently the microblaze code calls gdb_register_coprocessor() in its
> initfn. This works, but we would like to delay setting up GDB
> registers until realize. All other target architectures only call
> gdb_register_coprocessor() in realize, after the call to
> cpu_exec_realizefn().
>
> Move the microblaze gdb_register_coprocessor() use, bringing it
> in line with other targets.
>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> target/microblaze/cpu.c | 12 +++++-------
> 1 file changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/target/microblaze/cpu.c b/target/microblaze/cpu.c
> index d92a43191bd..b8dae83ce0c 100644
> --- a/target/microblaze/cpu.c
> +++ b/target/microblaze/cpu.c
> @@ -252,6 +252,11 @@ static void mb_cpu_realizefn(DeviceState *dev, Error **errp)
> return;
> }
>
> + gdb_register_coprocessor(cs, mb_cpu_gdb_read_stack_protect,
> + mb_cpu_gdb_write_stack_protect,
> + gdb_find_static_feature("microblaze-stack-protect.xml"),
> + 0);
> +
> qemu_init_vcpu(cs);
>
> version = cpu->cfg.version ? cpu->cfg.version : DEFAULT_CPU_VERSION;
> @@ -324,13 +329,6 @@ static void mb_cpu_realizefn(DeviceState *dev, Error **errp)
>
> static void mb_cpu_initfn(Object *obj)
> {
> - MicroBlazeCPU *cpu = MICROBLAZE_CPU(obj);
> -
> - gdb_register_coprocessor(CPU(cpu), mb_cpu_gdb_read_stack_protect,
> - mb_cpu_gdb_write_stack_protect,
> - gdb_find_static_feature("microblaze-stack-protect.xml"),
> - 0);
> -
> #ifndef CONFIG_USER_ONLY
> /* Inbound IRQ and FIR lines */
> qdev_init_gpio_in(DEVICE(obj), microblaze_cpu_set_irq, 2);
> --
> 2.43.0
>