zynq: replace CAN kconfig options by device packages
[openwrt/openwrt.git] / target / linux / zynq / image / Makefile
index 6f4a909eff6661ad28b0d19f3084f8c1c387c50c..d8a882313bab05677ca27d9d0ad369bebe06202e 100644 (file)
@@ -7,78 +7,75 @@
 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 $(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
-
+FAT32_BLOCK_SIZE=1024
+FAT32_BLOCKS=$(shell echo $$(($(CONFIG_TARGET_KERNEL_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
+
+define Build/zynq-sdcard
+       rm -f $@.boot
+       mkfs.fat $@.boot -C $(FAT32_BLOCKS)
+       mcopy -i $@.boot $(STAGING_DIR_IMAGE)/$(DEVICE_NAME)-boot.bin ::boot.bin
+       mcopy -i $@.boot $(STAGING_DIR_IMAGE)/$(DEVICE_NAME)-u-boot.img ::u-boot.img
+       mcopy -i $@.boot $(STAGING_DIR_IMAGE)/$(DEVICE_NAME)-uEnv.txt ::uEnv.txt
+       mcopy -i $@.boot $(IMAGE_KERNEL) ::fit.itb
+       ./gen_zynq_sdcard_img.sh $@ \
+               $@.boot \
+               $(IMAGE_ROOTFS) \
+               $(CONFIG_TARGET_KERNEL_PARTSIZE) \
+               $(CONFIG_TARGET_ROOTFS_PARTSIZE)
+       rm -f $@.boot
 endef
 
 #################################################
-# Devices
+# Default and templates
 #################################################
 
-# default kernel load address
-KERNEL_LOADADDR=0x8000
-KERNEL_ENTRY_POINT=0x8000
-
-### Device macros ###
 define Device/Default
-       IMG_PREFIX := zynq
-       PROFILE_SANITIZED :=
+       PROFILES := Default
+       KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
+       KERNEL_INITRAMFS_PREFIX := $$(IMG_PREFIX)-$(1)-initramfs
+       KERNEL_PREFIX := $$(IMAGE_PREFIX)
+       KERNEL_LOADADDR := 0x8000
+       IMAGES := sdcard.img.gz
+       IMAGE/sdcard.img.gz := zynq-sdcard | gzip
 endef
 
-define Device/DefaultConfig
-       DEVICE_LC = $(1)
-       IMG_PREFIX = zynq-$(1)
-       DEVICE_DTS = zynq-$(1)
+define Device/FitImageGzip
+       KERNEL_SUFFIX := -fit-uImage.itb
+       KERNEL = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
+       KERNEL_NAME := Image
 endef
 
-### ZC702 ###
-define Device/ZC702
-       $(call Device/DefaultConfig,zc702)
+#################################################
+# Devices
+#################################################
+
+define Device/avnet_zynq-zed
+       $(call Device/FitImageGzip)
+       DEVICE_TITLE := Avnet ZedBoard board
+       DEVICE_DTS := zynq-zed
 endef
+TARGET_DEVICES += avnet_zynq-zed
 
-define Device/ZED
-       $(call Device/DefaultConfig,zed)
+define Device/digilent_zynq-zybo
+       $(call Device/FitImageGzip)
+       DEVICE_TITLE := ZYBO Development Board
+       DEVICE_DTS := zynq-zybo
 endef
+TARGET_DEVICES += digilent_zynq-zybo
 
-define Device/ZYBO
-       $(call Device/DefaultConfig,zybo)
+define Device/digilent_zynq-zybo-z7
+       $(call Device/FitImageGzip)
+       DEVICE_TITLE := Digilent Zybo Z7 board
+       DEVICE_DTS := zynq-zybo-z7
 endef
+TARGET_DEVICES += digilent_zynq-zybo-z7
 
-define Image/BuildKernel
-       $(eval $(call Device/$(PROFILE)))
-       $(call Image/boot-imgs)
+define Device/xlnx_zynq-zc702
+       $(call Device/FitImageGzip)
+       DEVICE_TITLE := ZC702 Development Board
+       DEVICE_DTS := zynq-zc702
+       DEVICE_PACKAGES:=kmod-can kmod-can-xilinx-can
 endef
+TARGET_DEVICES += xlnx_zynq-zc702
 
 $(eval $(call BuildImage))