zynq: add new target
[openwrt/openwrt.git] / target / linux / zynq / image / Makefile
diff --git a/target/linux/zynq/image/Makefile b/target/linux/zynq/image/Makefile
new file mode 100644 (file)
index 0000000..2924a5d
--- /dev/null
@@ -0,0 +1,75 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/image.mk
+
+#################################################
+# 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)
+
+       $(call Image/BuildDTB,$(DTS_DIR)/$(DEVICE_DTS).dts,\
+               $(BIN_DIR)/$(IMG_PREFIX)-system.dtb)
+
+       $(call Image/mkfs/cpiogz)
+       $(call Image/mkfs/targz)
+
+       # 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
+
+       # create FIT image with rootfs
+       ./mkits.sh \
+               -D $(1) -o $(KDIR)/fit-$(1).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-$(1).its $(KDIR)/fit-$(1).itb
+       $(CP) $(KDIR)/fit-$(1).itb $(BIN_DIR)/$(IMG_PREFIX)-fit.itb
+       ln -fs $(IMG_PREFIX)-fit.itb $(BIN_DIR)/fit.itb
+
+endef
+
+#################################################
+# Devices
+#################################################
+
+# default kernel load address
+KERNEL_LOADADDR=0x8000
+KERNEL_ENTRY_POINT=0x8000
+
+### Device macros ###
+define Device/Default
+       IMG_PREFIX := zynq
+       DEVICE_DTS :=
+       PROFILE_SANITIZED :=
+endef
+
+DEVICE_VARS += DEVICE_DTS
+
+### ZC702 ###
+define Device/ZC702
+       DEVICE_DTS := zynq-zc702
+endef
+
+Image/boot-imgs/ZC702=$(call Image/boot-imgs,zc702)
+
+define Image/BuildKernel
+       $(eval $(call Device/$(PROFILE)))
+       $(call Image/boot-imgs/$(PROFILE))
+endef
+
+$(eval $(call BuildImage))