boot/ti-k3-r5-loader: allow for full build source customization

The TI K3 R5 loader package essentially is a wrapper to build a special
version of U-boot SPL used as part of a multi-stage boot flow on TI K3
devices, and as such needs full flexibility as to specifying the U-Boot
sources used for the build. To accomodate this, add the same options as
already available in the regular U-Boot package. For most use cases, the
same source settings (repo URL, versions, etc.) should be used for both
ti-k3-r5-loader and uboot packages.

Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Andreas Dannenberg 2023-06-15 19:23:50 -05:00 committed by Thomas Petazzoni
parent d6b2f14901
commit a77db2f34c
2 changed files with 87 additions and 3 deletions

View File

@ -2,13 +2,74 @@ config BR2_TARGET_TI_K3_R5_LOADER
bool "ti-k3-r5-loader"
depends on BR2_aarch64
help
Separate U-Boot build for R5 cores on TI's k3 boards.
Separate U-Boot SPL build for R5 core on TI's K3 processors.
Usually used to build tiboot3.bin with k3-image-gen.
if BR2_TARGET_TI_K3_R5_LOADER
choice
prompt "Configuration"
prompt "U-Boot Version"
help
Select the specific U-Boot version you want to use to build
the initial SPL running on the R5 core. Note that for most
use cases you will want to use the exact same version/source
here as it is used to build the main U-Boot package.
config BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION
bool "2022.10"
config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
bool "Custom version"
help
This option allows to use a specific official versions
config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
bool "Custom tarball"
config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT
bool "Custom Git repository"
config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG
bool "Custom Mercurial repository"
config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
bool "Custom Subversion repository"
endchoice
config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION_VALUE
string "U-Boot version"
depends on BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL_LOCATION
string "URL of custom U-Boot tarball"
depends on BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL
string "URL of custom repository"
config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_VERSION
string "Custom repository version"
help
Revision to use in the typical format used by
Git/Mercurial/Subversion E.G. a sha id, a tag, branch, ..
endif
config BR2_TARGET_TI_K3_R5_LOADER_VERSION
string
default "2022.10" if BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION
default BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION_VALUE \
if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
default "custom" if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
default BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_VERSION \
if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT || \
BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG || \
BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
choice
prompt "U-Boot Configuration"
default BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG
config BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG

View File

@ -4,9 +4,32 @@
#
################################################################################
TI_K3_R5_LOADER_VERSION = 2022.10
TI_K3_R5_LOADER_VERSION = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_VERSION))
ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL),y)
# Handle custom U-Boot tarballs as specified by the configuration
TI_K3_R5_LOADER_TARBALL = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL_LOCATION))
TI_K3_R5_LOADER_SITE = $(patsubst %/,%,$(dir $(TI_K3_R5_LOADER_TARBALL)))
TI_K3_R5_LOADER_SOURCE = $(notdir $(TI_K3_R5_LOADER_TARBALL))
else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT),y)
TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
TI_K3_R5_LOADER_SITE_METHOD = git
else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG),y)
TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
TI_K3_R5_LOADER_SITE_METHOD = hg
else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN),y)
TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
TI_K3_R5_LOADER_SITE_METHOD = svn
else
# Handle stable official U-Boot versions
TI_K3_R5_LOADER_SITE = https://ftp.denx.de/pub/u-boot
TI_K3_R5_LOADER_SOURCE = u-boot-$(TI_K3_R5_LOADER_VERSION).tar.bz2
endif
ifeq ($(BR2_TARGET_TI_K3_R5_LOADER)$(BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION),y)
BR_NO_CHECK_HASH_FOR += $(TI_K3_R5_LOADER_SOURCE)
endif
TI_K3_R5_LOADER_LICENSE = GPL-2.0+
TI_K3_R5_LOADER_LICENSE_FILES = Licenses/gpl-2.0.txt
TI_K3_R5_LOADER_CPE_ID_VENDOR = denx