config BR2_TARGET_AT91BOOTSTRAP3
	bool "AT91 Bootstrap 3"
	depends on BR2_arm926t || BR2_cortex_a5 || BR2_cortex_a7
	help
	  AT91Bootstrap is a first level bootloader for the Atmel AT91
	  devices. It integrates algorithms for:
	  - Device initialization such as clock configuration, PIO
	    settings...
	  - Peripheral drivers such as PIO, PMC or SDRAMC...
	  - Physical media algorithm such as DataFlash, NandFlash, NOR
	    Flash...

	  https://www.at91.com/linux4sam/bin/view/Linux4SAM/AT91Bootstrap

if BR2_TARGET_AT91BOOTSTRAP3

choice

	prompt "AT91 Bootstrap 3 version"

config BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION
	bool "3.9.3"

config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT
	bool "Custom Git repository"
	help
	  This option allows Buildroot to get the AT91 Bootstrap 3
	  source code from a Git repository.

config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL
	bool "Custom tarball"

endchoice

config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION
	string "URL of custom AT91Bootstrap tarball"
	depends on BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL

if BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT

config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL
	string "URL of custom repository"

config BR2_TARGET_AT91BOOTSTRAP3_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_AT91BOOTSTRAP3_VERSION
	string
	default "v3.9.3" if BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION
	default BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION \
		if BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT
	default "custom"	if BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL

config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_PATCH_DIR
	string "custom patch dir"
	help
	  If your board requires custom patches, add the path to the
	  directory containing the patches here. The patches must be
	  named at91bootstrap3-<something>.patch.

	  Most users may leave this empty

#
# Configuration selection
#

choice
	prompt "AT91 Bootstrap 3 configuration"
	default BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG

config BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG
	bool "Using a defconfig"

config BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG
	bool "Using a custom config file"

endchoice

config BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG
	string "Defconfig name"
	depends on BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG
	help
	  Name of the at91bootstrap3 defconfig file to use, without the
	  trailing _defconfig.  The defconfig is located at
	  board/<processor>/<board>_defconfig in the at91bootstrap3
	  tree.

config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE
	string "Configuration file path"
	depends on BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG
	help
	  Path to the at91bootstrap3 configuration file

endif # BR2_TARGET_AT91BOOTSTRAP3
