qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH-for-8.0 v2 01/11] hw/mips/bootloader: Handle buffers as opaqu


From: Richard Henderson
Subject: Re: [PATCH-for-8.0 v2 01/11] hw/mips/bootloader: Handle buffers as opaque arrays
Date: Mon, 12 Dec 2022 07:46:46 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2

On 12/11/22 14:52, Philippe Mathieu-Daudé wrote:
On 11/12/22 21:45, Philippe Mathieu-Daudé wrote:
It is irrelevant to the API what the buffers to fill are made of.
In particular, some MIPS ISA have 16-bit wide instructions.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
  hw/mips/bootloader.c         | 55 +++++++++++++++++++++---------------
  hw/mips/malta.c              | 19 +++++++------
  include/hw/mips/bootloader.h | 10 +++----
  3 files changed, 48 insertions(+), 36 deletions(-)


diff --git a/include/hw/mips/bootloader.h b/include/hw/mips/bootloader.h
index fffb0b7da8..c32f6c2835 100644
--- a/include/hw/mips/bootloader.h
+++ b/include/hw/mips/bootloader.h
@@ -11,16 +11,16 @@
  #include "exec/cpu-defs.h"
-void bl_gen_jump_to(uint32_t **p, target_ulong jump_addr);
-void bl_gen_jump_kernel(uint32_t **p,
+void bl_gen_jump_to(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,
                          bool set_a1, target_ulong a1,
                          bool set_a2, target_ulong a2,
                          bool set_a3, target_ulong a3,
                          target_ulong kernel_addr);
-void bl_gen_write_ulong(uint32_t **p, target_ulong addr, target_ulong val);
-void bl_gen_write_u32(uint32_t **p, target_ulong addr, uint32_t val);
-void bl_gen_write_u64(uint32_t **p, target_ulong addr, uint64_t val);
+void bl_gen_write_ulong(void **ptr, target_ulong addr, target_ulong val);
+void bl_gen_write_u32(void **ptr, target_ulong addr, uint32_t val);
+void bl_gen_write_u64(void **ptr, target_ulong addr, uint64_t val);

And I forgot to squash this...:

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~


-- >8 --
diff --git a/hw/mips/boston.c b/hw/mips/boston.c
index edda87e23c..b6dd9fb200 100644
--- a/hw/mips/boston.c
+++ b/hw/mips/boston.c
@@ -323,7 +323,7 @@ static void boston_register_types(void)
  }
  type_init(boston_register_types)

-static void gen_firmware(uint32_t *p, hwaddr kernel_entry, hwaddr fdt_addr)
+static void gen_firmware(void *p, hwaddr kernel_entry, hwaddr fdt_addr)
  {
      uint64_t regaddr;

diff --git a/hw/mips/fuloong2e.c b/hw/mips/fuloong2e.c
index 34befa5dd5..cfc8ca6ae4 100644
--- a/hw/mips/fuloong2e.c
+++ b/hw/mips/fuloong2e.c
@@ -179,7 +179,7 @@ static void write_bootloader(CPUMIPSState *env, uint8_t 
*base,
      /* Second part of the bootloader */
      p = (uint32_t *)(base + 0x040);

-    bl_gen_jump_kernel(&p,
+    bl_gen_jump_kernel((void **)&p,
                         true, ENVP_VADDR - 64,
                         true, 2, true, ENVP_VADDR,
                         true, ENVP_VADDR + 8,
---





reply via email to

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