zynq: convert to new image build code
[openwrt/openwrt.git] / target / linux / zynq / image / Makefile
index 4c85bc283d9abb75c34fe3743f180b1311d6bfe4..a4400c7287131c9363dd70ccac76d04efaade375 100644 (file)
@@ -11,33 +11,32 @@ include $(INCLUDE_DIR)/image.mk
 # Images
 #################################################
 
 # Images
 #################################################
 
-define Image/boot-imgs
-       # Copy zImage to BIN_DIR
-       $(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage
-
-       $(call Image/BuildKernel/MkuImage, none, $(KERNEL_LOADADDR), \
-               $(KERNEL_ENTRY_POINT), $(KDIR)/zImage, \
-               $(BIN_DIR)/$(IMG_PREFIX)-uImage)
+# $(1): rootfs contents directory
+define Image/mkfs/cpio
+       ( cd $(call mkfs_target_dir,$(1))/; find . | cpio -o -H newc | gzip -9n > $@ )
+endef
 
 
-       $(call Image/BuildDTB,$(DTS_DIR)/$(DEVICE_DTS).dts,\
-               $(BIN_DIR)/$(IMG_PREFIX)-system.dtb)
+# $(1): zynq board id
+define Build/dtb
+       $(call Image/BuildDTB,$(DTS_DIR)/zynq-$(1).dts,$@.dtb)
+endef
 
 
+define Build/uRamdisk
        # Create uboot cpio.gz
        mkimage -A arm -T ramdisk -C gzip -n "$(PROFILE) OpenWRT rootfs" \
        # Create uboot cpio.gz
        mkimage -A arm -T ramdisk -C gzip -n "$(PROFILE) OpenWRT rootfs" \
-               -d $(BIN_DIR)/$(IMG_PREFIX)-rootfs.cpio.gz \
-               $(BIN_DIR)/$(IMG_PREFIX)-uramdisk.image.gz
+               -d $(IMAGE_ROOTFS) $@.new
+       mv $@.new $@
+endef
 
 
+# $(1): FIT name/description
+define Build/fit
        # create FIT image with rootfs
        ./mkits.sh \
        # create FIT image with rootfs
        ./mkits.sh \
-               -D $(DEVICE_LC) -o $(KDIR)/fit-$(DEVICE_LC).its -k $(KDIR)/zImage \
-               -d $(BIN_DIR)/$(IMG_PREFIX)-system.dtb \
-               -C none -a $(KERNEL_LOADADDR) -e $(KERNEL_ENTRY_POINT) \
-               -A $(ARCH) -v $(LINUX_VERSION) \
-               -r $(BIN_DIR)/$(IMG_PREFIX)-rootfs.cpio.gz -z gzip
-       PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/fit-$(DEVICE_LC).its $(KDIR)/fit-$(DEVICE_LC).itb
-       $(CP) $(KDIR)/fit-$(DEVICE_LC).itb $(BIN_DIR)/$(IMG_PREFIX)-fit.itb
-       ln -fs $(IMG_PREFIX)-fit.itb $(BIN_DIR)/fit.itb
+               -D $(1) -o $@.its -k $(IMAGE_KERNEL) -d $(IMAGE_KERNEL).dtb \
+               -C none -a $(KERNEL_LOADADDR) -e $(KERNEL_ENTRY) \
+               -A $(ARCH) -v $(LINUX_VERSION) -r $(IMAGE_ROOTFS) -z gzip
 
 
+       PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@
 endef
 
 #################################################
 endef
 
 #################################################
@@ -46,36 +45,27 @@ endef
 
 # default kernel load address
 KERNEL_LOADADDR=0x8000
 
 # default kernel load address
 KERNEL_LOADADDR=0x8000
-KERNEL_ENTRY_POINT=0x8000
-
-### Device macros ###
-define Device/Default
-       IMG_PREFIX := zynq
-       PROFILE_SANITIZED :=
-endef
-
-define Device/DefaultConfig
-       DEVICE_LC = $(1)
-       IMG_PREFIX = zynq-$(1)
-       DEVICE_DTS = zynq-$(1)
+KERNEL_ENTRY=0x8000
+
+TARGET_FILESYSTEMS += cpio
+
+# $(1): canonical device name
+# $(2): lowercase device id
+define ZynqDevice
+  define Device/$(1)
+       DEVICE_TITLE := $(1) development board
+       KERNEL := dtb $(2) | kernel-bin | uImage none
+       KERNEL_NAME = zImage
+       IMAGES := uramdisk.image.gz fit.itb
+       IMAGE/uramdisk.image.gz := uRamdisk
+       IMAGE/fit.itb := fit $(2)
+       IMAGE_NAME = $$$$(IMG_PREFIX)-$(2)-$$$$(2)
+  endef
+  TARGET_DEVICES += $(1)
 endef
 
 endef
 
-### ZC702 ###
-define Device/ZC702
-       $(call Device/DefaultConfig,zc702)
-endef
-
-define Device/ZED
-       $(call Device/DefaultConfig,zed)
-endef
-
-define Device/ZYBO
-       $(call Device/DefaultConfig,zybo)
-endef
-
-define Image/BuildKernel
-       $(eval $(call Device/$(PROFILE)))
-       $(call Image/boot-imgs)
-endef
+$(eval $(call ZynqDevice,ZC702,zc702))
+$(eval $(call ZynqDevice,ZedBoard,zed))
+$(eval $(call ZynqDevice,ZYBO,zybo))
 
 $(eval $(call BuildImage))
 
 $(eval $(call BuildImage))