menuconfig BR2_TARGET_AT91BOOTSTRAP
	depends on BR2_arm
	bool "AT91 Bootstrap"
	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...

if	BR2_TARGET_AT91BOOTSTRAP

config BR2_TARGET_AT91BOOTSTRAP_BOARD
	string "Bootstrap board"
	default ""
	help
	  This is used to do a make <board>_config

choice
	prompt "Boot Memory"
	default BR2_TARGET_AT91BOOT_DATAFLASHCARD
	help
	  Select Chip for which AT91 bootstrap should be built

config BR2_TARGET_AT91BOOT_DATAFLASH
	bool "AT45 Dataflash"

config BR2_TARGET_AT91BOOT_DATAFLASHCARD
	bool "AT45 Dataflash Card"

config BR2_TARGET_AT91BOOT_NANDFLASH
	bool "NAND Flash"

config BR2_TARGET_AT91BOOT_FLASH
	bool "Internal Flash or external parallel flash"

config BR2_TARGET_AT91BOOT_SDCARD
	bool "SD-Card"

config BR2_TARGET_AT91BOOT_EEPROM
	bool "EEPROM"

endchoice

config BR2_TARGET_AT91BOOTSTRAP_MEMORY
	string
	default	"dataflash"	if	BR2_TARGET_AT91BOOT_DATAFLASH
	default	"dataflashcard"	if	BR2_TARGET_AT91BOOT_DATAFLASHCARD
	default	"nandflash"	if	BR2_TARGET_AT91BOOT_NANDFLASH
	default	"flash"		if	BR2_TARGET_AT91BOOT_FLASH
	default	"sdcard"	if	BR2_TARGET_AT91BOOT_SDCARD
	default	"eeprom"	if	BR2_TARGET_AT91BOOT_EEPROM

config	BR2_AT91BOOTSTRAP_IMG_SIZE
	string	"Image Size to copy to SDRAM"
	default	"0x32000"	if	BR2_TARGET_AT91BOOT_DATAFLASH
	default	"0x32000"	if	BR2_TARGET_AT91BOOT_DATAFLASHCARD
	default	"0x30000"	if	BR2_TARGET_AT91BOOT_NANDFLASH
	default	"0x100000"	if	BR2_TARGET_AT91BOOT_FLASH
	default	"0x30000"	if	BR2_TARGET_AT91BOOT_SDCARD
	default	"0x30000"	if	BR2_TARGET_AT91BOOT_EEPROM
	help
	  Select the size of your application
	  AT91 Bootstrap will copy this amount from flash to SDRAM

choice
	prompt "Start address of application"
	default BR2_AT91BOOTSTRAP_JUMP_TO_DEFAULT
	help
	  Location of the application start address

config	BR2_AT91BOOTSTRAP_JUMP_TO_DEFAULT
	bool "Copy to the default U-Boot start location in the SDRAM"
	help
	  This is where you copy the U-Boot boot loader

config	BR2_AT91BOOTSTRAP_JUMP_TO_HIGH_SDRAM
	bool "Copy to the last Megabyte of the SDRAM"
	help
	  This is where you copy a boot loader

config	BR2_AT91BOOTSTRAP_JUMP_TO_START_OF_SDRAM
	bool "Copy to the start of the SDRAM"
	help
	  This is where you copy a standalone application
endchoice

config	BR2_AT91BOOTSTRAP_JUMP_ADDR
	string
	default	"0x23F00000" if BR2_AT91BOOTSTRAP_JUMP_TO_DEFAULT
	default	"0x23F00000" if BR2_AT91BOOTSTRAP_JUMP_TO_HIGH_SDRAM
	default "0x20000000" if BR2_AT91BOOTSTRAP_JUMP_TO_START_OF_SDRAM

endif



