From a6fcc80bea1f062ffad330a1dcbc1e3d463a4493 Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Mon, 24 Feb 2020 05:39:42 -0800 Subject: [PATCH] roms: opensbi: Add 32-bit firmware image for sifive_u machine Although the real world SiFive HiFive Unleashed board is a 64-bit hardware configuration, with QEMU it is possible to test 32-bit configuration with the same hardware features. This updates the roms Makefile to add the build rules for creating the 32-bit OpenSBI firmware image for sifive_u machine. A pre-built OpenSBI v0.6 image has been added as the default bios for 32-bit sifive_u machine. Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Signed-off-by: Palmer Dabbelt --- Makefile | 2 +- pc-bios/opensbi-riscv32-sifive_u-fw_jump.bin | Bin 0 -> 49472 bytes roms/Makefile | 7 +++++++ 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 pc-bios/opensbi-riscv32-sifive_u-fw_jump.bin diff --git a/Makefile b/Makefile index 7df22fcc5da..ea0e08fc57f 100644 --- a/Makefile +++ b/Makefile @@ -848,7 +848,7 @@ u-boot.e500 u-boot-sam460-20100605.bin \ qemu_vga.ndrv \ edk2-licenses.txt \ hppa-firmware.img \ -opensbi-riscv32-virt-fw_jump.bin \ +opensbi-riscv32-sifive_u-fw_jump.bin opensbi-riscv32-virt-fw_jump.bin \ opensbi-riscv64-sifive_u-fw_jump.bin opensbi-riscv64-virt-fw_jump.bin diff --git a/pc-bios/opensbi-riscv32-sifive_u-fw_jump.bin b/pc-bios/opensbi-riscv32-sifive_u-fw_jump.bin new file mode 100644 index 0000000000000000000000000000000000000000..bab13f597ac9da31518f0a2bb22c2a1dbd56380d GIT binary patch literal 49472 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 literal 0 Hc-jL100001 diff --git a/roms/Makefile b/roms/Makefile index 28e1e557b07..f9acf39954d 100644 --- a/roms/Makefile +++ b/roms/Makefile @@ -66,6 +66,7 @@ default help: @echo " efi -- update UEFI (edk2) platform firmware" @echo " opensbi32-virt -- update OpenSBI for 32-bit virt machine" @echo " opensbi64-virt -- update OpenSBI for 64-bit virt machine" + @echo " opensbi32-sifive_u -- update OpenSBI for 32-bit sifive_u machine" @echo " opensbi64-sifive_u -- update OpenSBI for 64-bit sifive_u machine" @echo " bios-microvm -- update bios-microvm.bin (qboot)" @echo " clean -- delete the files generated by the previous" \ @@ -181,6 +182,12 @@ opensbi64-virt: PLATFORM="qemu/virt" cp opensbi/build/platform/qemu/virt/firmware/fw_jump.bin ../pc-bios/opensbi-riscv64-virt-fw_jump.bin +opensbi32-sifive_u: + $(MAKE) -C opensbi \ + CROSS_COMPILE=$(riscv32_cross_prefix) \ + PLATFORM="sifive/fu540" + cp opensbi/build/platform/sifive/fu540/firmware/fw_jump.bin ../pc-bios/opensbi-riscv32-sifive_u-fw_jump.bin + opensbi64-sifive_u: $(MAKE) -C opensbi \ CROSS_COMPILE=$(riscv64_cross_prefix) \ -- 2.39.5