hw/riscv: virt: Move create_fw_cfg() prior to loading kernel
To enable both -kernel and -pflash options, the fw_cfg needs to be created prior to loading the kernel. Signed-off-by: Sunil V L <sunilvl@ventanamicro.com> Reviewed-by: Andrew Jones <ajones@ventanamicro.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-Id: <20221004092351.18209-3-sunilvl@ventanamicro.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
785a7383dd
commit
90e26984ee
@ -1267,6 +1267,13 @@ static void virt_machine_done(Notifier *notifier, void *data)
|
|||||||
RISCV64_BIOS_BIN, start_addr, NULL);
|
RISCV64_BIOS_BIN, start_addr, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Init fw_cfg. Must be done before riscv_load_fdt, otherwise the device
|
||||||
|
* tree cannot be altered and we get FDT_ERR_NOSPACE.
|
||||||
|
*/
|
||||||
|
s->fw_cfg = create_fw_cfg(machine);
|
||||||
|
rom_set_fw(s->fw_cfg);
|
||||||
|
|
||||||
if (machine->kernel_filename) {
|
if (machine->kernel_filename) {
|
||||||
kernel_start_addr = riscv_calc_kernel_start_addr(&s->soc[0],
|
kernel_start_addr = riscv_calc_kernel_start_addr(&s->soc[0],
|
||||||
firmware_end_addr);
|
firmware_end_addr);
|
||||||
@ -1300,13 +1307,6 @@ static void virt_machine_done(Notifier *notifier, void *data)
|
|||||||
start_addr = virt_memmap[VIRT_FLASH].base;
|
start_addr = virt_memmap[VIRT_FLASH].base;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Init fw_cfg. Must be done before riscv_load_fdt, otherwise the device
|
|
||||||
* tree cannot be altered and we get FDT_ERR_NOSPACE.
|
|
||||||
*/
|
|
||||||
s->fw_cfg = create_fw_cfg(machine);
|
|
||||||
rom_set_fw(s->fw_cfg);
|
|
||||||
|
|
||||||
/* Compute the fdt load address in dram */
|
/* Compute the fdt load address in dram */
|
||||||
fdt_load_addr = riscv_load_fdt(memmap[VIRT_DRAM].base,
|
fdt_load_addr = riscv_load_fdt(memmap[VIRT_DRAM].base,
|
||||||
machine->ram_size, machine->fdt);
|
machine->ram_size, machine->fdt);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user