diff mbox series

[13/23] hw/mips/bootloader: Propagate CPU to bl_gen_jump_to()

Message ID 20250113004748.41658-14-philmd@linaro.org
State New
Headers show
Series hw/mips: Remove all uses of &first_cpu | expand

Commit Message

Philippe Mathieu-Daudé Jan. 13, 2025, 12:47 a.m. UTC
Propagate the target agnostic CPU pointer to the publicly
declared bl_gen_jump_to() function.
Include "target/mips/cpu-qom.h" to get MIPSCPU typedef.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 include/hw/mips/bootloader.h |  3 ++-
 hw/mips/bootloader.c         | 10 +++++-----
 2 files changed, 7 insertions(+), 6 deletions(-)
diff mbox series

Patch

diff --git a/include/hw/mips/bootloader.h b/include/hw/mips/bootloader.h
index c32f6c28356..daa2b92e249 100644
--- a/include/hw/mips/bootloader.h
+++ b/include/hw/mips/bootloader.h
@@ -10,8 +10,9 @@ 
 #define HW_MIPS_BOOTLOADER_H
 
 #include "exec/cpu-defs.h"
+#include "target/mips/cpu-qom.h"
 
-void bl_gen_jump_to(void **ptr, target_ulong jump_addr);
+void bl_gen_jump_to(const MIPSCPU *cpu, void **ptr, target_ulong jump_addr);
 void bl_gen_jump_kernel(void **ptr,
                         bool set_sp, target_ulong sp,
                         bool set_a0, target_ulong a0,
diff --git a/hw/mips/bootloader.c b/hw/mips/bootloader.c
index e29eb5e92f3..6f055228392 100644
--- a/hw/mips/bootloader.c
+++ b/hw/mips/bootloader.c
@@ -249,11 +249,11 @@  static void bl_gen_load_ulong(const CPUMIPSState *env, void **p,
 }
 
 /* Helpers */
-void bl_gen_jump_to(void **p, target_ulong jump_addr)
+void bl_gen_jump_to(const MIPSCPU *cpu, void **p, target_ulong jump_addr)
 {
-    bl_gen_load_ulong(&MIPS_CPU(first_cpu)->env, p, BL_REG_T9, jump_addr);
-    bl_gen_jalr(&MIPS_CPU(first_cpu)->env, p, BL_REG_T9);
-    bl_gen_nop(&MIPS_CPU(first_cpu)->env, p); /* delay slot */
+    bl_gen_load_ulong(&cpu->env, p, BL_REG_T9, jump_addr);
+    bl_gen_jalr(&cpu->env, p, BL_REG_T9);
+    bl_gen_nop(&cpu->env, p); /* delay slot */
 }
 
 void bl_gen_jump_kernel(void **p,
@@ -280,7 +280,7 @@  void bl_gen_jump_kernel(void **p,
         bl_gen_load_ulong(&MIPS_CPU(first_cpu)->env, p, BL_REG_A3, a3);
     }
 
-    bl_gen_jump_to(p, kernel_addr);
+    bl_gen_jump_to(MIPS_CPU(first_cpu), p, kernel_addr);
 }
 
 void bl_gen_write_ulong(void **p, target_ulong addr, target_ulong val)