From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Korsgaard Date: Fri, 30 Apr 2021 09:48:56 +0200 Subject: [Buildroot] [PATCH 1/4] boot/opensbi: add support for version configuration In-Reply-To: <20210429074636.724046-2-thomas.petazzoni@bootlin.com> (Thomas Petazzoni's message of "Thu, 29 Apr 2021 09:46:32 +0200") References: <20210429074636.724046-1-thomas.petazzoni@bootlin.com> <20210429074636.724046-2-thomas.petazzoni@bootlin.com> Message-ID: <87a6pg8b6f.fsf@dell.be.48ers.dk> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net >>>>> "Thomas" == Thomas Petazzoni 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 > --- > 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