[Buildroot] [PATCH 1/4] boot/opensbi: add support for version configuration
Peter Korsgaard
peter at korsgaard.com
Fri Apr 30 07:48:56 UTC 2021
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni at bootlin.com> writes:
> OpenSBI contains platform-specific code, so very much like Linux,
> U-Boot or other bootloaders, using the upstream version of OpenSBI
> will very often not be sufficient.
> This commit therefore adds the possibility of specifying a custom
> version of OpenSBI, either custom from upstream, custom tarball, or
> custom from Git. Support for other version control systems has not
> been implemented for now, but could be added later if needed.
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
> ---
> boot/opensbi/Config.in | 51 +++++++++++++++++++++++++++++++++++++++++
> boot/opensbi/opensbi.mk | 19 ++++++++++++++-
> 2 files changed, 69 insertions(+), 1 deletion(-)
> 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
Maybe this should be inside the _LATEST_VERSION conditional in case the
license file ever changes, like we have done for the linux kernel?
But OK, that can be done later. Committed, thanks.
--
Bye, Peter Korsgaard
More information about the buildroot
mailing list