hw/riscv: Load OpenSBI as the default firmware
If the user hasn't specified a firmware to load (with -bios) or
specified no bios (with -bios none) then load OpenSBI by default. This
allows users to boot a RISC-V kernel with just -kernel.
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c
index ca53a92..71b8083 100644
--- a/hw/riscv/sifive_u.c
+++ b/hw/riscv/sifive_u.c
@@ -49,6 +49,8 @@
#include <libfdt.h>
+#define BIOS_FILENAME "opensbi-riscv64-sifive_u-fw_jump.bin"
+
static const struct MemmapEntry {
hwaddr base;
hwaddr size;
@@ -269,9 +271,8 @@
/* create device tree */
create_fdt(s, memmap, machine->ram_size, machine->kernel_cmdline);
- if (machine->firmware) {
- riscv_load_firmware(machine->firmware, memmap[SIFIVE_U_DRAM].base);
- }
+ riscv_find_and_load_firmware(machine, BIOS_FILENAME,
+ memmap[SIFIVE_U_DRAM].base);
if (machine->kernel_filename) {
riscv_load_kernel(machine->kernel_filename);