hw/tricore/triboard: Remove unnecessary use of &first_cpu

triboard_machine_init() has access to the single CPU via:

  TriBoardMachineState {
    TC27XSoCState {
      TriCoreCPU cpu;
      ...
    } tc27x_soc;
  } ms;

Pass it as argument to tricore_load_kernel() so we can
remove the &first_cpu global use.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Message-Id: <20250110180909.83165-1-philmd@linaro.org>
This commit is contained in:
Philippe Mathieu-Daudé 2025-01-10 19:07:05 +01:00
parent ef82ab6924
commit e555abceec

View File

@ -31,11 +31,10 @@
#include "hw/tricore/triboard.h" #include "hw/tricore/triboard.h"
#include "hw/tricore/tc27x_soc.h" #include "hw/tricore/tc27x_soc.h"
static void tricore_load_kernel(const char *kernel_filename) static void tricore_load_kernel(TriCoreCPU *cpu, const char *kernel_filename)
{ {
uint64_t entry; uint64_t entry;
long kernel_size; long kernel_size;
TriCoreCPU *cpu;
CPUTriCoreState *env; CPUTriCoreState *env;
kernel_size = load_elf(kernel_filename, NULL, kernel_size = load_elf(kernel_filename, NULL,
@ -46,7 +45,6 @@ static void tricore_load_kernel(const char *kernel_filename)
error_report("no kernel file '%s'", kernel_filename); error_report("no kernel file '%s'", kernel_filename);
exit(1); exit(1);
} }
cpu = TRICORE_CPU(first_cpu);
env = &cpu->env; env = &cpu->env;
env->PC = entry; env->PC = entry;
} }
@ -62,7 +60,7 @@ static void triboard_machine_init(MachineState *machine)
sysbus_realize(SYS_BUS_DEVICE(&ms->tc27x_soc), &error_fatal); sysbus_realize(SYS_BUS_DEVICE(&ms->tc27x_soc), &error_fatal);
if (machine->kernel_filename) { if (machine->kernel_filename) {
tricore_load_kernel(machine->kernel_filename); tricore_load_kernel(&ms->tc27x_soc.cpu, machine->kernel_filename);
} }
} }