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 7df22fcc5d..ea0e08fc57 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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 LK2!!=HU#)Dl;_f9 literal 0 HcmV?d00001 diff --git a/roms/Makefile b/roms/Makefile index 28e1e557b0..f9acf39954 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) \