Release notes at: https://github.com/riscv-software-src/opensbi/releases/tag/v1.6 From release notes: "Overall, this release adds more ISA extensions, drivers, and other improvements." This OpenSBI version 1.6 can be tested in qemu with the commands: cat <<EOF >.config BR2_riscv=y BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_OPENSBI=y BR2_TARGET_OPENSBI_PLAT="generic" BR2_TOOLCHAIN_EXTERNAL=y EOF make olddefconfig make Then: qemu-system-riscv64 \ -M virt \ -bios output/images/fw_jump.bin \ -kernel output/images/Image \ -append "rootwait root=/dev/vda ro" \ -drive file=output/images/rootfs.ext2,format=raw \ -nographic Note that in the previous qemu command line, the OpenSBI ".bin" image is passed rather than the ".elf" image. Loading the ".elf" image in qemu can now lead to the following qemu error: qemu-system-riscv64: Some ROM regions are overlapping These ROM regions might have been loaded by direct user request or by default. They could be BIOS/firmware images, a guest kernel, initrd or some other file loaded into guest memory. Check whether you intended to load all this guest code, and whether it has been built to load to the correct addresses. The following two regions overlap (in the memory address space): fw_jump.elf ELF program header segment 1 (addresses 0x0000000000000000 - 0x00000000000271e0) mrom.reset (addresses 0x0000000000001000 - 0x0000000000001028) See: https://github.com/riscv-software-src/opensbi/issues/372 Signed-off-by: Kilian Zinnecker <kilian.zinnecker@mail.de> Tested-by: Julien Olivain <ju.o@free.fr> [Julien: reworded the commit log about testing] Signed-off-by: Julien Olivain <ju.o@free.fr>
129 lines
3.7 KiB
Plaintext
129 lines
3.7 KiB
Plaintext
config BR2_TARGET_OPENSBI
|
|
bool "opensbi"
|
|
depends on BR2_riscv
|
|
help
|
|
OpenSBI aims to provide an open-source and extensible
|
|
implementation of the RISC-V SBI specification for a platform
|
|
specific firmware (M-mode) and a general purpose OS,
|
|
hypervisor or bootloader (S-mode or HS-mode). OpenSBI
|
|
implementation can be easily extended by RISC-V platform or
|
|
System-on-Chip vendors to fit a particular hadware
|
|
configuration.
|
|
|
|
https://github.com/riscv-software-src/opensbi
|
|
|
|
if BR2_TARGET_OPENSBI
|
|
choice
|
|
prompt "OpenSBI Version"
|
|
help
|
|
Select the specific OpenSBI version you want to use
|
|
|
|
config BR2_TARGET_OPENSBI_LATEST_VERSION
|
|
bool "1.6"
|
|
|
|
config BR2_TARGET_OPENSBI_CUSTOM_VERSION
|
|
bool "Custom version"
|
|
help
|
|
This option allows to use a specific official versions
|
|
|
|
config BR2_TARGET_OPENSBI_CUSTOM_TARBALL
|
|
bool "Custom tarball"
|
|
|
|
config BR2_TARGET_OPENSBI_CUSTOM_GIT
|
|
bool "Custom Git repository"
|
|
|
|
endchoice
|
|
|
|
config BR2_TARGET_OPENSBI_CUSTOM_VERSION_VALUE
|
|
string "OpenSBI version"
|
|
depends on BR2_TARGET_OPENSBI_CUSTOM_VERSION
|
|
|
|
config BR2_TARGET_OPENSBI_CUSTOM_TARBALL_LOCATION
|
|
string "URL of custom OpenSBI tarball"
|
|
depends on BR2_TARGET_OPENSBI_CUSTOM_TARBALL
|
|
|
|
if BR2_TARGET_OPENSBI_CUSTOM_GIT
|
|
|
|
config BR2_TARGET_OPENSBI_CUSTOM_REPO_URL
|
|
string "URL of custom repository"
|
|
|
|
config BR2_TARGET_OPENSBI_CUSTOM_REPO_VERSION
|
|
string "Custom repository version"
|
|
help
|
|
Revision to use in the typical format used by Git. E.G. a
|
|
sha id, a tag, branch, ..
|
|
|
|
endif
|
|
|
|
config BR2_TARGET_OPENSBI_VERSION
|
|
string
|
|
default "1.6" if BR2_TARGET_OPENSBI_LATEST_VERSION
|
|
default BR2_TARGET_OPENSBI_CUSTOM_VERSION_VALUE \
|
|
if BR2_TARGET_OPENSBI_CUSTOM_VERSION
|
|
default "custom" if BR2_TARGET_OPENSBI_CUSTOM_TARBALL
|
|
default BR2_TARGET_OPENSBI_CUSTOM_REPO_VERSION \
|
|
if BR2_TARGET_OPENSBI_CUSTOM_GIT
|
|
|
|
config BR2_TARGET_OPENSBI_PLAT
|
|
string "OpenSBI Platform"
|
|
default ""
|
|
help
|
|
Specifies the OpenSBI platform to build. If no platform is
|
|
specified only the OpenSBI platform independent static
|
|
library libsbi.a is built. If a platform is specified then
|
|
the platform specific static library libplatsbi.a and firmware
|
|
examples are built.
|
|
|
|
config BR2_TARGET_OPENSBI_INSTALL_DYNAMIC_IMG
|
|
bool "Install fw_dynamic image"
|
|
default y if BR2_TARGET_OPENSBI_PLAT != ""
|
|
help
|
|
This installs the fw_dynamic image.
|
|
|
|
config BR2_TARGET_OPENSBI_INSTALL_JUMP_IMG
|
|
bool "Install fw_jump image"
|
|
default y if BR2_TARGET_OPENSBI_PLAT != ""
|
|
help
|
|
This installs the fw_jump image.
|
|
|
|
config BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG
|
|
bool "Install fw_payload image"
|
|
help
|
|
This option enables the installation of the fw_paylaod
|
|
image.
|
|
|
|
config BR2_TARGET_OPENSBI_LINUX_PAYLOAD
|
|
bool "Include Linux as OpenSBI Payload"
|
|
depends on BR2_TARGET_OPENSBI_PLAT != ""
|
|
depends on BR2_LINUX_KERNEL
|
|
depends on BR2_LINUX_KERNEL_IMAGE
|
|
select BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG
|
|
help
|
|
Build OpenSBI with the Linux kernel as a Payload.
|
|
|
|
config BR2_TARGET_OPENSBI_UBOOT_PAYLOAD
|
|
bool "Include U-Boot as OpenSBI Payload"
|
|
depends on BR2_TARGET_OPENSBI_PLAT != ""
|
|
depends on BR2_TARGET_UBOOT
|
|
select BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG
|
|
help
|
|
Build OpenSBI with the U-Boot as a Payload.
|
|
|
|
config BR2_TARGET_OPENSBI_FW_FDT_PATH
|
|
bool "Include U-Boot DTB in OpenSBI Payload"
|
|
depends on BR2_TARGET_OPENSBI_UBOOT_PAYLOAD
|
|
select BR2_TARGET_UBOOT_FORMAT_DTB
|
|
help
|
|
Build OpenSBI with FW_FDT_PATH set to
|
|
$(BINARIES_DIR)/u-boot.dtb. Note that CONFIG_OF_SEPARATE
|
|
must be set in the U-Boot configuration for this file to be
|
|
produced.
|
|
|
|
config BR2_TARGET_OPENSBI_ADDITIONAL_VARIABLES
|
|
string "Additional build variables"
|
|
help
|
|
Additional parameters for the build, which will be passed on
|
|
the make command line. E.g: BUILD_INFO=1.
|
|
|
|
endif
|