[Top][All Lists]

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

Re: [PATCH v3 07/10] hw/riscv/boot.c: use MachineState in riscv_load_ini

From: Daniel Henrique Barboza
Subject: Re: [PATCH v3 07/10] hw/riscv/boot.c: use MachineState in riscv_load_initrd()
Date: Wed, 28 Dec 2022 16:04:36 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0

On 12/28/22 12:51, Philippe Mathieu-Daudé wrote:
On 28/12/22 14:33, Daniel Henrique Barboza wrote:
'filename', 'mem_size' and 'fdt' from riscv_load_initrd() can all be
retrieved by the MachineState object for all callers.

Cc: Palmer Dabbelt <palmer@dabbelt.com>
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Bin Meng <bmeng@tinylab.org>
  hw/riscv/boot.c            | 6 ++++--
  hw/riscv/microchip_pfsoc.c | 3 +--
  hw/riscv/sifive_u.c        | 3 +--
  hw/riscv/spike.c           | 3 +--
  hw/riscv/virt.c            | 3 +--
  include/hw/riscv/boot.h    | 3 +--
  6 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c
index d3c71b3f0b..f7e806143a 100644
--- a/hw/riscv/boot.c
+++ b/hw/riscv/boot.c
@@ -204,9 +204,11 @@ target_ulong riscv_load_kernel(const char *kernel_filename,
  -void riscv_load_initrd(const char *filename, uint64_t mem_size,
-                       uint64_t kernel_entry, void *fdt)
+void riscv_load_initrd(MachineState *machine, uint64_t kernel_entry)
+    const char *filename = machine->initrd_filename;

Do we want to check for missing -initrd here? Or simply return quietly
if not provided?

This function is always called after a "if (!machine->initrd_filename)", so we 
be certain that -initrd will always be present if the function is called.

Perhaps one thing that we could do is to remove this check and fold it inside 
function, right at the start, to make the function behavior independent of what
the caller is doing. We could do that at patch 9/10 where we'll end up with a 
caller instead of 4-5.


+    uint64_t mem_size = machine->ram_size;
+    void *fdt = machine->fdt;
      hwaddr start, end;
      ssize_t size;

reply via email to

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