config BR2_TARGET_TI_K3_R5_LOADER
	bool "ti-k3-r5-loader"
	depends on BR2_aarch64
	depends on BR2_PACKAGE_HOST_ARM_GNU_TOOLCHAIN_SUPPORTS
	select BR2_TARGET_TI_K3_BOOT_FIRMWARE # binman
	help
	  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 "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 "2024.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 "2024.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
	bool "Using an in-tree board defconfig file"

config BR2_TARGET_TI_K3_R5_LOADER_USE_CUSTOM_CONFIG
	bool "Using a custom board (def)config file"

endchoice

config BR2_TARGET_TI_K3_R5_LOADER_BOARD_DEFCONFIG
	string "Board defconfig"
	depends on BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG
	help
	  Name of the board for which TI K3 R5 Loader should be
	  built, without the _defconfig suffix.

config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_CONFIG_FILE
	string "Configuration file path"
	depends on BR2_TARGET_TI_K3_R5_LOADER_USE_CUSTOM_CONFIG
	help
	  Path to the TI K3 R5 Loader configuration file.

config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_DTS_PATH
	string "Device Tree Source file paths"
	help
	  Space-separated list of paths to device tree source files
	  that will be copied to arch/arm/dts/ before starting the
	  build.

	  To use this device tree source file, the U-Boot configuration
	  file must refer to it.

config BR2_TARGET_TI_K3_R5_LOADER_TIBOOT3_BIN
	string "tiboot3.bin binary name"
	default "tiboot3.bin"
	help
	  Name of the TI K3 tiboot3.bin binary to use.

	  The tiboot3 binary name must match with the TI K3 SoC boot
	  ROM:

	  - General Purpose devices (gp)
	  - High Security - Field Securable devices (hs-fs)
	  - High Security - Security Enforcing devices (hs)

	  Or if the tiboot3 binary generated use a custom name.

	  If unsure, use the default tiboot3.bin (symlink) generated by
	  binman.

config BR2_TARGET_TI_K3_R5_LOADER_SYSFW_ITB
	string "sysfw.itb binary name"
	default "sysfw.itb"
	help
	  Name of the TI K3 sysfw.itb binary to use (if any required).

	  sysfw*.itb are only generated for Split binary based Boot
	  Flow (eg: am65, j721e). This option is not used on other
	  TI K3 devices.

	  The sysfw binary name must match with the TI K3 SoC boot
	  ROM:

	  - General Purpose devices (gp)
	  - High Security - Field Securable devices (hs-fs)
	  - High Security - Security Enforcing devices (hs)

	  Or if the sysfw binary generated use a custom name.

	  If unsure, use the default sysfw.itb (symlink) generated by
	  binman.

endif
