X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=target%2Flinux%2Fat91%2Fimage%2FMakefile;h=49d93aa97d7faae48cdaa944e58e3c90869a9483;hp=97723bb82857648e4ca3038c727a864f5173b218;hb=60750ab505bae8d1cb70c6fe495b755b213a1ebf;hpb=f50231aeb3bd0d6a8c7dc04cc7130d8a64938e63 diff --git a/target/linux/at91/image/Makefile b/target/linux/at91/image/Makefile index 97723bb828..49d93aa97d 100644 --- a/target/linux/at91/image/Makefile +++ b/target/linux/at91/image/Makefile @@ -1,5 +1,5 @@ -# -# Copyright (C) 2006-2010 OpenWrt.org +# +# Copyright (C) 2006-2013 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -7,32 +7,118 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/image.mk -define Build/Clean - $(MAKE) -C u-boot clean +KERNEL_LOADADDR := 0x20008000 + +define Build/at91-install-zImage + $(CP) $(KDIR)/zImage $@ +endef + +ifeq ($(SUBTARGET),legacy) +include ./legacy.mk +endif +ifeq ($(SUBTARGET),sama5d2) +include ./sama5d2.mk +endif +ifeq ($(SUBTARGET),sama5d3) +include ./sama5d3.mk +endif +ifeq ($(SUBTARGET),sama5d4) +include ./sama5d4.mk +endif + +AT91_SD_BOOT_PARTSIZE:=64 +FAT32_BLOCK_SIZE:=1024 +FAT32_BLOCKS:=$(shell echo \ + $$(($(AT91_SD_BOOT_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE)))) + +define Device/Default + $(Device/default-nand) + PROFILES := Default + FILESYSTEMS := squashfs ubifs ext4 + DEVICE_DTS := $(1) + KERNEL_NAME := zImage + KERNEL_SIZE := 4096k + KERNEL := kernel-bin | append-dtb | lzma | uImage lzma + DTB_SIZE := 128k +endef + +define Device/dtb + KERNEL := kernel-bin | lzma | uImage lzma +endef + +define Build/at91-sdcard + $(if $(findstring ext4,$@), \ + rm -f $@.boot + mkfs.fat -C $@.boot $(FAT32_BLOCKS) + + mcopy -i $@.boot $(KDIR)/zImage ::zImage + + $(foreach dts,$(DEVICE_DTS), \ + mcopy -i $@.boot $(DTS_DIR)/$(dts).dtb \ + ::$(dts).dtb) + + mcopy -i $@.boot \ + $(BIN_DIR)/u-boot-$(DEVICE_NAME:at91-%=%)_mmc/u-boot.bin \ + ::u-boot.bin + + mcopy -i $@.boot \ + $(BIN_DIR)/at91bootstrap-$(DEVICE_NAME:at91-%=%)sd*/at91bootstrap.bin \ + ::BOOT.bin + + ./gen_at91_sdcard_img.sh \ + $@.img \ + $@.boot \ + $(KDIR)/root.ext4 \ + $(AT91_SD_BOOT_PARTSIZE) \ + $(CONFIG_TARGET_ROOTFS_PARTSIZE) + + gzip -nc9 $@.img > $@ + + rm -f $@.img $@.boot ) +endef + +define Device/evaluation-sdimage + IMAGES += sdcard.img.gz + IMAGE/sdcard.img.gz := at91-sdcard +endef + +define Device/evaluation + KERNEL_INSTALL := 1 + KERNEL_SUFFIX := -uImage + IMAGES := root.ubi + IMAGE/root.ubi := append-ubi +endef + +define Device/evaluation-zImage + IMAGES += zImage + IMAGE/zImage := at91-install-zImage endef -define Build/Compile - if [ $(CONFIG_AT91_UBOOT) ]; then \ - $(MAKE) -C u-boot compile; \ - fi +define Device/evaluation-dtb + $(Device/evaluation) + $(Device/dtb) + $(Device/evaluation-zImage) + IMAGES += dtb + IMAGE/dtb := install-dtb endef -define Image/Prepare +define Device/evaluation-fit + $(Device/evaluation) + KERNEL_SUFFIX := -fit-uImage.itb + KERNEL := kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb endef -define Image/BuildKernel - mkdir -p $(BIN_DIR) - mkimage -A arm -T kernel -C none -a 0x20008000 -e 0x20008000 -n linux-2.6 \ - -d $(LINUX_DIR)/arch/arm/boot/Image $(BIN_DIR)/$(IMG_PREFIX)-uImage - if [ $(CONFIG_FLEXIBITY_ROOT) ]; then \ - $(INSTALL_BIN) $(BIN_DIR)/$(IMG_PREFIX)-uImage $(TARGET_DIR)/uImage ; \ - fi +define Device/production + UBINIZE_OPTS := -E 5 + IMAGES := factory.bin + IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi endef -define Image/Build - $(call Image/Build/$(1),$(1)) - mkdir -p $(BIN_DIR) - cp $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-root.$(1) +define Device/production-dtb + $(Device/production) + $(Device/dtb) + IMAGE/factory.bin := append-dtb | pad-to $$$$(DTB_SIZE) \ + | append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi endef $(eval $(call BuildImage))