diff options
Diffstat (limited to 'boot/at91bootstrap')
-rw-r--r-- | boot/at91bootstrap/Config.in | 91 | ||||
-rw-r--r-- | boot/at91bootstrap/at91bootstrap.mk | 89 |
2 files changed, 180 insertions, 0 deletions
diff --git a/boot/at91bootstrap/Config.in b/boot/at91bootstrap/Config.in new file mode 100644 index 000000000..1bf8d50d2 --- /dev/null +++ b/boot/at91bootstrap/Config.in @@ -0,0 +1,91 @@ +menuconfig BR2_TARGET_AT91BOOTSTRAP + depends on BR2_arm + bool "AT91 Bootstrap" + +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 + + + diff --git a/boot/at91bootstrap/at91bootstrap.mk b/boot/at91bootstrap/at91bootstrap.mk new file mode 100644 index 000000000..903069653 --- /dev/null +++ b/boot/at91bootstrap/at91bootstrap.mk @@ -0,0 +1,89 @@ +############################################################# +# +# at91bootstrap +# +############################################################# +AT91BOOTSTRAP_VERSION:=2.13 +AT91BOOTSTRAP_NAME:=at91bootstrap-$(AT91BOOTSTRAP_VERSION) +AT91BOOTSTRAP_SITE:=ftp://www.at91.com/pub/buildroot/ +AT91BOOTSTRAP_SOURCE:=$(AT91BOOTSTRAP_NAME).tar.bz2 +AT91BOOTSTRAP_DIR:=$(BUILD_DIR)/$(AT91BOOTSTRAP_NAME) +AT91BOOTSTRAP:=$(call qstrip,$(BR2_AT91BOOTSTRAP)) +AT91BOOTSTRAP_ZCAT:=$(BZCAT) + +AT91BOOTSTRAP_BOARD:=$(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_BOARD)) +AT91BOOTSTRAP_MEMORY:=$(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_MEMORY)) +AT91BOOTSTRAP_BINARY:=$(AT91BOOTSTRAP_BOARD)-$(AT91BOOTSTRAP_MEMORY)boot.bin +AT91BOOTSTRAP_TARGET:=$(AT91BOOTSTRAP_DIR)/binaries/$(AT91BOOTSTRAP_BINARY) +AT91BOOTSTRAP_JUMP_ADDR:=$(call qstrip,$(BR2_AT91BOOTSTRAP_JUMP_ADDR)) +AT91BOOTSTRAP_IMG_SIZE:=$(call qstrip,$(BR2_AT91BOOTSTRAP_IMG_SIZE)) + +AT91_CUSTOM_FLAGS:= +ifneq ($(AT91BOOTSTRAP_JUMP_ADDR),) +AT91_CUSTOM_FLAGS+=-DJUMP_ADDR=$(AT91BOOTSTRAP_JUMP_ADDR) +endif +ifneq ($(AT91BOOTSTRAP_IMG_SIZE),) +AT91_CUSTOM_FLAGS+=-DIMG_SIZE=$(AT91BOOTSTRAP_IMG_SIZE) +endif + +$(DL_DIR)/$(AT91BOOTSTRAP_SOURCE): + $(call DOWNLOAD,$(AT91BOOTSTRAP_SITE),$(AT91BOOTSTRAP_SOURCE)) + +$(AT91BOOTSTRAP_DIR)/.unpacked: $(DL_DIR)/$(AT91BOOTSTRAP_SOURCE) + mkdir -p $(BUILD_DIR) + $(AT91BOOTSTRAP_ZCAT) $(DL_DIR)/$(AT91BOOTSTRAP_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + toolchain/patch-kernel.sh $(AT91BOOTSTRAP_DIR) boot/at91bootstrap/ at91bootstrap-$(AT91BOOTSTRAP_VERSION)\*.patch + touch $(AT91BOOTSTRAP_DIR)/.unpacked + +$(AT91BOOTSTRAP_DIR)/.configured: $(AT91BOOTSTRAP_DIR)/.unpacked .config + $(MAKE) \ + MEMORY=$(AT91BOOTSTRAP_MEMORY) \ + CROSS_COMPILE=$(TARGET_CROSS) \ + -C $(AT91BOOTSTRAP_DIR) \ + $(AT91BOOTSTRAP_BOARD)_defconfig + touch $(AT91BOOTSTRAP_DIR)/.configured + +$(AT91BOOTSTRAP_TARGET): $(AT91BOOTSTRAP_DIR)/.configured + $(MAKE) \ + MEMORY=$(AT91BOOTSTRAP_MEMORY) \ + CROSS_COMPILE=$(TARGET_CROSS) \ + AT91_CUSTOM_FLAGS="$(AT91_CUSTOM_FLAGS)" \ + -C $(AT91BOOTSTRAP_DIR) + +$(AT91BOOTSTRAP_DIR)/.installed:: $(AT91BOOTSTRAP_TARGET) + mkdir -p $(BINARIES_DIR) + make MEMORY=$(AT91BOOTSTRAP_MEMORY) \ + CROSS_COMPILE=$(TARGET_CROSS) \ + DESTDIR=$(BINARIES_DIR) \ + -C $(AT91BOOTSTRAP_DIR) install + touch $@ + +.PHONY: at91bootstrap at91bootstrap-source + +at91bootstrap: $(AT91BOOTSTRAP_DIR)/.installed + +at91bootstrap-source: $(DL_DIR)/$(AT91BOOTSTRAP_SOURCE) + +at91bootstrap-unpacked: $(AT91BOOTSTRAP_DIR)/.unpacked + +.PHONY: at91bootstrap-clean at91bootstrap-dirclean + +at91bootstrap-clean: + make -C $(AT91BOOTSTRAP_DIR) clean + +at91bootstrap-dirclean: + rm -rf $(AT91BOOTSTRAP_DIR) + +############################################################# +# +# Toplevel Makefile options +# +############################################################# +ifeq ($(BR2_TARGET_AT91BOOTSTRAP),y) +TARGETS+=at91bootstrap + +# we NEED a board name +ifeq ($(AT91BOOTSTRAP_BOARD),) +$(error No AT91Bootstrap board name set. Check your BR2_TARGET_AT91BOOTSTRAP_BOARD setting) +endif +endif |