On Thu, Dec 22, 2022 at 4:28 AM Daniel Henrique Barboza <dbarb...@ventanamicro.com> wrote: > > This will make the code more in line with what the other boards are > doing. We'll also avoid an extra check to machine->kernel_filename since > we already checked that before executing riscv_load_kernel(). > > Signed-off-by: Daniel Henrique Barboza <dbarb...@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Alistair > --- > hw/riscv/spike.c | 31 +++++++++++++++---------------- > 1 file changed, 15 insertions(+), 16 deletions(-) > > diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c > index 43341c20b6..f37a9bebbf 100644 > --- a/hw/riscv/spike.c > +++ b/hw/riscv/spike.c > @@ -257,6 +257,10 @@ static void spike_board_init(MachineState *machine) > memory_region_add_subregion(system_memory, memmap[SPIKE_MROM].base, > mask_rom); > > + /* Create device tree */ > + create_fdt(s, memmap, machine->ram_size, machine->kernel_cmdline, > + riscv_is_32bit(&s->soc[0])); > + > /* > * Not like other RISC-V machines that use plain binary bios images, > * keeping ELF files here was intentional because BIN files don't work > @@ -275,6 +279,17 @@ static void spike_board_init(MachineState *machine) > kernel_entry = riscv_load_kernel(machine->kernel_filename, > kernel_start_addr, > htif_symbol_callback); > + > + if (machine->initrd_filename) { > + hwaddr start; > + hwaddr end = riscv_load_initrd(machine->initrd_filename, > + machine->ram_size, kernel_entry, > + &start); > + qemu_fdt_setprop_cell(machine->fdt, "/chosen", > + "linux,initrd-start", start); > + qemu_fdt_setprop_cell(machine->fdt, "/chosen", > "linux,initrd-end", > + end); > + } > } else { > /* > * If dynamic firmware is used, it doesn't know where is the next mode > @@ -283,22 +298,6 @@ static void spike_board_init(MachineState *machine) > kernel_entry = 0; > } > > - /* Create device tree */ > - create_fdt(s, memmap, machine->ram_size, machine->kernel_cmdline, > - riscv_is_32bit(&s->soc[0])); > - > - /* Load initrd */ > - if (machine->kernel_filename && machine->initrd_filename) { > - hwaddr start; > - hwaddr end = riscv_load_initrd(machine->initrd_filename, > - machine->ram_size, kernel_entry, > - &start); > - qemu_fdt_setprop_cell(machine->fdt, "/chosen", > - "linux,initrd-start", start); > - qemu_fdt_setprop_cell(machine->fdt, "/chosen", "linux,initrd-end", > - end); > - } > - > /* Compute the fdt load address in dram */ > fdt_load_addr = riscv_load_fdt(memmap[SPIKE_DRAM].base, > machine->ram_size, machine->fdt); > -- > 2.38.1 > >