menuconfig BR2_TARGET_UBOOT
	bool "Das U-Boot Boot Monitor"
	help
	  Build "Das U-Boot" Boot Monitor

if BR2_TARGET_UBOOT
config BR2_TARGET_UBOOT_BOARDNAME
	string "board name"
	default "$(BOARD_NAME)"
	help
	  One of U-Boot supported boards to be built.
	  This will be suffixed with _config to meet U-Boot standard naming.

choice
	prompt "U-Boot Version"
	default BR2_TARGET_UBOOT_2009_01
	help
	  Select the specific U-Boot version you want to use

config BR2_TARGET_UBOOT_2009_01
	bool "u-boot-2009.01"

config BR2_TARGET_UBOOT_2008_10
	bool "u-boot-2008.10"

config BR2_TARGET_UBOOT_1_3_4
	bool "u-boot-1.3.4"
	depends on BR2_DEPRECATED

config BR2_TARGET_UBOOT_1_2_0_ATMEL
	bool "u-boot-1.2.0-atmel"
	depends on BR2_TARGET_AT91

endchoice

config BR2_UBOOT_VERSION
	string
	default "2009.01"	if BR2_TARGET_UBOOT_2009_01
	default "2008.10"	if BR2_TARGET_UBOOT_2008_10
	default "1.3.4"		if BR2_TARGET_UBOOT_1_3_4
	default "1.2.0-atmel"	if BR2_TARGET_UBOOT_1_2_0_ATMEL

config BR2_U_BOOT_SITE
	string
	default "$(BR2_ATMEL_MIRROR)"		if BR2_TARGET_UBOOT_1_2_0_ATMEL
	default "ftp://ftp.denx.de/pub/u-boot"

source "target/device/Config.in.u-boot"

config BR2_TARGET_UBOOT_CUSTOM_PATCH
	string "custom patch"
	help
	  If your board requires a custom patch, add the path to the file here.
	  Most users may leave this empty

choice
	prompt "Bootsource"
	depends on BR2_BOOTSOURCE
	default BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASHCARD

	config BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASHCARD
	bool "Boot from dataflashcard"
	depends on BR2_BOOTSOURCE_DATAFLASHCARD

	config BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASH
	bool "Boot from dataflash"
	depends on BR2_BOOTSOURCE_DATAFLASH

	config BR2_TARGET_UBOOT_BOOTSOURCE_NANDFLASH
	bool "Boot from a NAND flash"
	depends on BR2_BOOTSOURCE_NANDFLASH

	config BR2_TARGET_UBOOT_BOOTSOURCE_FLASH
	bool "Boot from a parallell flash"
	depends on BR2_BOOTSOURCE_FLASH

	config BR2_TARGET_UBOOT_BOOTSOURCE_SDCARD
	bool "Boot from an SD-Card"
	depends on BR2_BOOTSOURCE_SDCARD

	config BR2_TARGET_UBOOT_BOOTSOURCE_EEPROM
	bool "Boot from a serial EEPROM (Not yet supported)"
	depends on BR2_BOOTSOURCE_EEPROM

endchoice

config BR2_TARGET_UBOOT_BOOTSOURCE
	string
	depends on BR2_BOOTSOURCE
	default "dataflash"	if BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASHCARD
	default "dataflash"	if BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASH
	default "nandflash"	if BR2_TARGET_UBOOT_BOOTSOURCE_NANDFLASH
	default "flash"		if BR2_TARGET_UBOOT_BOOTSOURCE_FLASH
	default "sdcard"	if BR2_TARGET_UBOOT_BOOTSOURCE_SDCARD
	default "eeprom"	if BR2_TARGET_UBOOT_BOOTSOURCE_EEPROM

config BR2_TARGET_UBOOT_SILENT
	bool "silent console"
	help
	  If the option has been enabled, the output can be
	  silenced by setting the environment variable "silent".

config BR2_TARGET_UBOOT_TOOL_MKIMAGE
	bool "mkimage tool in target"
	help
	  Install mkimage tool in target.

config BR2_TARGET_UBOOT_TOOL_ENV
	bool "fw_printenv tool in target"
	help
	  Install fw_printenv / fw_setenv tools in target.

menuconfig BR2_TARGET_UBOOT_DEFAULT_ENV
	bool "Generate a default environment"
	help
	  Will generate variables for factory default command
	  and autoscript.

if BR2_TARGET_UBOOT_DEFAULT_ENV
choice
	prompt "SDRAM Memory size"
	default BR2_TARGET_UBOOT_SDRAM_SIZE_64M
	help
	  Size of the onboard SDRAM

config BR2_TARGET_UBOOT_SDRAM_SIZE_256MB
	bool "256 MB"

config BR2_TARGET_UBOOT_SDRAM_SIZE_128MB
	bool "128 MB"

config BR2_TARGET_UBOOT_SDRAM_SIZE_64MB
	bool "64 MB"

config BR2_TARGET_UBOOT_SDRAM_SIZE_32MB
	bool "32 MB"

config BR2_TARGET_UBOOT_SDRAM_SIZE_16MB
	bool "16 MB"

config BR2_TARGET_UBOOT_SDRAM_SIZE_8MB
	bool "8 MB"

endchoice

config BR2_TARGET_UBOOT_MEMORY_SIZE
	string
	default "256M"	if BR2_TARGET_UBOOT_SDRAM_SIZE_256MB
	default "128M"	if BR2_TARGET_UBOOT_SDRAM_SIZE_128MB
	default "64M"	if BR2_TARGET_UBOOT_SDRAM_SIZE_64MB
	default "32M"	if BR2_TARGET_UBOOT_SDRAM_SIZE_32MB
	default "16M"	if BR2_TARGET_UBOOT_SDRAM_SIZE_16MB
	default "8M"	if BR2_TARGET_UBOOT_SDRAM_SIZE_8MB

choice
	prompt "Kernel Size"
	default BR2_TARGET_UBOOT_KERNEL_SIZE_2_00MB

config BR2_TARGET_UBOOT_KERNEL_SIZE_1_25MB
	bool "Kernel size is less than 1.25 MB"

config BR2_TARGET_UBOOT_KERNEL_SIZE_1_50MB
	bool "Kernel size is less than 1.50 MB"

config BR2_TARGET_UBOOT_KERNEL_SIZE_1_75MB
	bool "Kernel size is less than 1.75 MB"

config BR2_TARGET_UBOOT_KERNEL_SIZE_2_00MB
	bool "Kernel size is less than 2.00 MB"

config BR2_TARGET_UBOOT_KERNEL_SIZE_2_25MB
	bool "Kernel size is less than 2.25 MB"

config BR2_TARGET_UBOOT_KERNEL_SIZE_2_50MB
	bool "Kernel size is less than 2.50 MB"

endchoice

choice
	prompt "Dataflash Size"
	depends on BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASHCARD || BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASH
	default BR2_TARGET_UBOOT_DATAFLASH_SIZE_2_00MB

config BR2_TARGET_UBOOT_DATAFLASH_SIZE_8MB
	bool "Dataflash size is 8 MB"

config BR2_TARGET_UBOOT_DATAFLASH_SIZE_4MB
	bool "Dataflash size is 4 MB"

config BR2_TARGET_UBOOT_DATAFLASH_SIZE_2MB
	bool "Dataflash size is 2 MB"

config BR2_TARGET_UBOOT_DATAFLASH_SIZE_1MB
	bool "Dataflash size is 1 MB"

config BR2_TARGET_UBOOT_DATAFLASH_SIZE_0_50MB
	bool "Dataflash size is 0.5 MB"

config BR2_TARGET_UBOOT_DATAFLASH_SIZE_0_25MB
	bool "Dataflash size is 0.25 MB"

endchoice

config BR2_TARGET_UBOOT_DATAFLASH_SIZE
	string
	depends on BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASHCARD || BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASH
	default "8M"	if BR2_TARGET_DATAFLASH_SIZE_8MB
	default "4M"	if BR2_TARGET_DATAFLASH_SIZE_4MB
	default "2M"	if BR2_TARGET_DATAFLASH_SIZE_2MB
	default "1M"	if BR2_TARGET_DATAFLASH_SIZE_1MB
	default "0.5M"	if BR2_TARGET_DATAFLASH_SIZE_0_50MB
	default "0.25M"	if BR2_TARGET_DATAFLASH_SIZE_0_25MB

config BR2_TARGET_UBOOT_END_OF_FLASH
	string
	depends on BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASHCARD || BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASH
	default "C083FFFF" if  BR2_TARGET_UBOOT_DATAFLASH_SIZE_8MB
	default "C041FFFF" if  BR2_TARGET_UBOOT_DATAFLASH_SIZE_4MB
	default "C020FFFF" if  BR2_TARGET_UBOOT_DATAFLASH_SIZE_2MB
	default "C0107FFF" if  BR2_TARGET_UBOOT_DATAFLASH_SIZE_1MB
	default "C0083FFF" if  BR2_TARGET_UBOOT_DATAFLASH_SIZE_0_50MB
	default "C0041FFF" if  BR2_TARGET_UBOOT_DATAFLASH_SIZE_0_25MB
	help

config BR2_TARGET_UBOOT_KERNEL_START
	string "Kernel SDRAM address"
	default "21000000"
	help
	  Kernel is loaded to this address in SDRAM

config BR2_TARGET_UBOOT_KERNEL_LOCATION
	string "Kernel flash address"
	depends on BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASHCARD || \
			BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASH
	default "C0042000" if BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASHCARD || BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASH
	default ""
	help
	  Kernel location in dataflash

config BR2_TARGET_UBOOT_FILESYSTEM_START
	string
	default "2114A000" if BR2_TARGET_UBOOT_KERNEL_SIZE_1_25MB
	default "2118C000" if BR2_TARGET_UBOOT_KERNEL_SIZE_1_50MB
  	default "211CE000" if BR2_TARGET_UBOOT_KERNEL_SIZE_1_75MB
  	default "21210000" if BR2_TARGET_UBOOT_KERNEL_SIZE_2_00MB
  	default "21252000" if BR2_TARGET_UBOOT_KERNEL_SIZE_2_25MB
  	default "21294000" if BR2_TARGET_UBOOT_KERNEL_SIZE_2_50MB
	help
	  Kernel is loaded to this SDRAM address
	  Assumes SDRAM starts at 20000000
	  Will need to be updated if the SDRAM is located elsewhere

config BR2_TARGET_UBOOT_FILESYSTEM_LOCATION
	string
	depends on BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASHCARD || \
			BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASH
	default "C018C000" if BR2_TARGET_UBOOT_KERNEL_SIZE_1_25MB
  	default "C01CE000" if BR2_TARGET_UBOOT_KERNEL_SIZE_1_50MB
  	default "C0210000" if BR2_TARGET_UBOOT_KERNEL_SIZE_1_75MB
  	default "C0252000" if BR2_TARGET_UBOOT_KERNEL_SIZE_2_00MB
  	default "C0294000" if BR2_TARGET_UBOOT_KERNEL_SIZE_2_25MB
  	default "C02D6000" if BR2_TARGET_UBOOT_KERNEL_SIZE_2_50MB
	help
	  Determine location for File System in Dataflash
	  This needs to be updated for other memory technologies

config BR2_TARGET_UBOOT_FILESYSTEM_SIZE
	string "File System Size"
	default "6000000"
	help

menuconfig BR2_TARGET_UBOOT_NETWORK
	bool "Network Settings"
	default y
	help
	  Network settings for U-boot

if BR2_TARGET_UBOOT_NETWORK

config BR2_TARGET_UBOOT_SERVERIP
	string "server ip"
	default "10.175.196.221"
	help
	  TFTP server ip address

config BR2_TARGET_UBOOT_IPADDR
	string "ip address"
	default "10.175.196.18"
	help
	  Target ip address

config BR2_TARGET_UBOOT_GATEWAY
	string "gateway ip"
	default "10.175.196.1"
	help
	  Gateway ip address

config BR2_TARGET_UBOOT_NETMASK
	string "netmask"
	default "255.255.255.0"
	help
	  Network Mask

config BR2_TARGET_UBOOT_ETHADDR
	string "ethernet address"
	default "04:25:fe:ed:00:18"
	help
	  Target MAC address for the ethernet interface.
	  This should be changed for production units

config BR2_TARGET_UBOOT_ETH1ADDR
	string "ethernet 2 address"
	depends on BR2_TARGET_AVR32
	help
	  Target MAC address for the second ethernet interface.

endif # BR2_TARGET_UBOOT_NETWORK

endif # BR2_TARGET_UBOOT_DEFAULT_ENV

endif # BR2_TARGET_UBOOT

config BR2_BOOTSOURCE_DATAFLASHCARD
	bool
	help
	  Allow use of a dataflashcard as a boot source

config BR2_BOOTSOURCE_DATAFLASH
	bool
	help
	  Allow use of a dataflash as a boot source

config BR2_BOOTSOURCE_NANDFLASH
	bool
	help
	  Allow use of a NAND flash as a boot source

config BR2_BOOTSOURCE_FLASH
	bool
	help
	  Allow use of a flash RAM as a boot source

config BR2_BOOTSOURCE_SDCARD
	bool
	help
	  Allow use of an SD-card as a boot source

config BR2_BOOTSOURCE_EEPROM
	bool
	help
	  Allow use of a serial eeprom as a boot source

config	BR2_BOOTSOURCE
	bool
	default y if BR2_BOOTSOURCE_DATAFLASHCARD
	default y if BR2_BOOTSOURCE_DATAFLASH
	default y if BR2_BOOTSOURCE_NANDFLASH
	default y if BR2_BOOTSOURCE_FLASH
	default y if BR2_BOOTSOURCE_SDCARD
	default y if BR2_BOOTSOURCE_EEPROM
