diff --git a/boot/opensbi/Config.in b/boot/opensbi/Config.in index b9b0ace8af..83f40f04fa 100644 --- a/boot/opensbi/Config.in +++ b/boot/opensbi/Config.in @@ -13,6 +13,57 @@ config BR2_TARGET_OPENSBI https://github.com/riscv/opensbi.git 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 "0.8" + +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 "0.8" 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 "" diff --git a/boot/opensbi/opensbi.mk b/boot/opensbi/opensbi.mk index 60b87c268d..250a6078af 100644 --- a/boot/opensbi/opensbi.mk +++ b/boot/opensbi/opensbi.mk @@ -4,13 +4,30 @@ # ################################################################################ -OPENSBI_VERSION = 0.8 +OPENSBI_VERSION = $(call qstrip,$(BR2_TARGET_OPENSBI_VERSION)) + +ifeq ($(OPENSBI_VERSION),custom) +# Handle custom OpenSBI tarballs as specified by the configuration +OPENSBI_TARBALL = $(call qstrip,$(BR2_TARGET_OPENSBI_CUSTOM_TARBALL_LOCATION)) +OPENSBI_SITE = $(patsubst %/,%,$(dir $(OPENSBI_TARBALL))) +OPENSBI_SOURCE = $(notdir $(OPENSBI_TARBALL)) +else ifeq ($(BR2_TARGET_OPENSBI_CUSTOM_GIT),y) +OPENSBI_SITE = $(call qstrip,$(BR2_TARGET_OPENSBI_CUSTOM_REPO_URL)) +OPENSBI_SITE_METHOD = git +else +# Handle official OpenSBI versions OPENSBI_SITE = $(call github,riscv,opensbi,v$(OPENSBI_VERSION)) +endif + OPENSBI_LICENSE = BSD-2-Clause OPENSBI_LICENSE_FILES = COPYING.BSD OPENSBI_INSTALL_TARGET = NO OPENSBI_INSTALL_STAGING = YES +ifeq ($(BR2_TARGET_OPENSBI)$(BR2_TARGET_OPENSBI_LATEST_VERSION),y) +BR_NO_CHECK_HASH_FOR += $(OPENSBI_SOURCE) +endif + OPENSBI_MAKE_ENV = \ CROSS_COMPILE=$(TARGET_CROSS)