X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=target%2Flinux%2Fimx6%2Fimage%2FMakefile;h=f13412f1e3002f41053419a7952c77b20d0940c6;hp=2e2e11b6ac98259e5f1ad9d98f8152c816c91cd6;hb=36c6ba3735f06f435af66175ace0dd192601ac85;hpb=2b6d364a2d210f4eeb8bdbd91367f1068982bc98 diff --git a/target/linux/imx6/image/Makefile b/target/linux/imx6/image/Makefile index 2e2e11b6ac..f13412f1e3 100644 --- a/target/linux/imx6/image/Makefile +++ b/target/linux/imx6/image/Makefile @@ -7,133 +7,173 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/image.mk -define sanitize_profile_name -$(shell echo $(PROFILE) | tr '[:upper:]' '[:lower:]' | sed 's/_/-/g') -endef - -define Image/BuildKernel/Template - - $(CP) $(DTS_DIR)/$(1).dtb $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb - - $(call Image/BuildKernel/MkFIT,$(1),$(KDIR)/zImage,$(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb,none,0x10008000,0x10008000) - $(CP) $(KDIR)/fit-$(1).itb $(BIN_DIR)/$(IMG_PREFIX)-$(1)-fit-uImage.itb - - ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) - $(call Image/BuildKernel/MkFIT,$(1),$(KDIR)/zImage-initramfs,$(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb,none,0x10008000,0x10008000,-initramfs) - $(CP) $(KDIR)/fit-$(1)-initramfs.itb $(BIN_DIR)/$(IMG_PREFIX)-$(1)-fit-uImage-initramfs.itb - endif - - $(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage - $(call Image/BuildKernel/MkuImage, \ - none, 0x10008000, 0x10008000, \ - $(BIN_DIR)/$(IMG_PREFIX)-zImage, \ - $(BIN_DIR)/$(IMG_PREFIX)-uImage \ +################################################# +# Images +################################################# + +DEVICE_VARS += MKUBIFS_OPTS UBOOT BOOT_SCRIPT + +define Build/boot-overlay + rm -rf $@.boot + mkdir -p $@.boot + + $(CP) $@ $@.boot/$(IMG_PREFIX)-uImage + ln -sf $(IMG_PREFIX)-uImage $@.boot/uImage + + $(foreach dts,$(DEVICE_DTS), \ + $(CP) \ + $(DTS_DIR)/$(dts).dtb \ + $@.boot/$(IMG_PREFIX)-$(dts).dtb; \ + ln -sf \ + $(IMG_PREFIX)-$(dts).dtb \ + $@.boot/$(dts).dtb; \ ) + mkimage -A arm -O linux -T script -C none -a 0 -e 0 \ + -n '$(DEVICE_ID) OpenWrt bootscript' \ + -d ./bootscript-$(DEVICE_NAME) \ + $@.boot/6x_bootscript-$(DEVICE_NAME) - ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) - $(CP) $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs - $(call Image/BuildKernel/MkuImage, \ - none, 0x10008000, 0x10008000, \ - $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs, \ - $(BIN_DIR)/$(IMG_PREFIX)-uImage-initramfs \ - ) - endif -endef + $(STAGING_DIR_HOST)/bin/mkfs.ubifs \ + --space-fixup --compr=zlib --squash-uids \ + $(MKUBIFS_OPTS) -c 8124 \ + -o $@.boot.ubifs -d $@.boot -define Image/InstallKernel/Template - - ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_KERNEL),) - $(INSTALL_DIR) $(TARGET_DIR)/boot - ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_UIMAGE),) - $(CP) $(BIN_DIR)/$(IMG_PREFIX)-uImage $(TARGET_DIR)/boot/ - ln -sf $(IMG_PREFIX)-uImage $(TARGET_DIR)/boot/uImage - endif - ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_ZIMAGE),) - $(CP) $(BIN_DIR)/$(IMG_PREFIX)-zImage $(TARGET_DIR)/boot/ - ln -sf $(IMG_PREFIX)-zImage $(TARGET_DIR)/boot/zImage - endif - ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_FIT),) - $(foreach dts,$(shell echo $(1)), \ - $(CP) $(BIN_DIR)/$(IMG_PREFIX)-$(dts)-fit-uImage.itb $(TARGET_DIR)/boot/ - ) - endif - endif - - ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_DTB),) - $(INSTALL_DIR) $(TARGET_DIR)/boot - $(foreach dts,$(shell echo $(1)), \ - $(CP) $(BIN_DIR)/$(IMG_PREFIX)-$(dts).dtb $(TARGET_DIR)/boot/ ; \ - ln -sf $(IMG_PREFIX)-$(dts).dtb $(TARGET_DIR)/boot/$(dts).dtb ; \ - ) - endif + $(TAR) -C $@.boot -cf $@.boot.tar . endef -define Image/Build/squashfs - $(call prepare_generic_squashfs,$(KDIR)/root.$(1)) - dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-$(1).bin bs=128k conv=sync - ( \ - dd if=$(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-fit-uImage.itb bs=2048k conv=sync; \ - dd if=$(KDIR)/root.$(1) bs=128k conv=sync; \ - ) > $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-fit-$(1).bin -endef +define Build/bootfs.tar.gz + rm -rf $@.boot + mkdir -p $@.boot -define Image/mkfs/targz - - $(TAR) -czpf $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-rootfs.tar.gz --numeric-owner --owner=0 --group=0 -C $(TARGET_DIR)/ . + $(TAR) -C $@.boot -xf $(IMAGE_KERNEL).boot.tar + $(TAR) -C $@.boot \ + --numeric-owner --owner=0 --group=0 --transform "s,./,./boot/," \ + -czvf $@ . endef -define ubifs_imx_gateworks_ventana - # Micron MT29F1G08ABAD/MT29F2G08ABAE/MT29F4G08ABAD/MT29F8G08ADAD NAND - $(eval VENTANA_UBIFS_OPTS:="-m 2048 -e 124KiB -c 8124") - $(eval VENTANA_UBI_OPTS:="-m 2048 -p 128KiB -s 2048") - $(call Image/mkfs/ubifs) - $(CP) $(KDIR)/root.ubifs $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-rootfs_normal.ubifs - $(CP) $(KDIR)/root.ubi $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-rootfs_normal.ubi - - # Micron MT29F8G08ABAC/MT29F16G08ADAC 1GB/2GB NAND - $(eval VENTANA_UBIFS_OPTS:="-m 4096 -e 248KiB -c 8124") - $(eval VENTANA_UBI_OPTS:="-m 4096 -p 256KiB -s 4096") - $(call Image/mkfs/ubifs) - $(CP) $(KDIR)/root.ubifs $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-rootfs_large.ubifs - $(CP) $(KDIR)/root.ubi $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-rootfs_large.ubi +define Build/boot-scr + mkimage -A arm -O linux -T script -C none -a 0 -e 0 \ + -n '$(DEVICE_ID) OpenWrt bootscript' \ + -d ./bootscript-$(DEVICE_NAME) \ + $(BIN_DIR)/boot.scr endef -define Image/Build/ubifs - true -endef +define Build/imx6-sdcard + rm -rf $@.boot + mkdir -p $@.boot -define Image/Build/ubi - true -endef + $(CP) $(STAGING_DIR_IMAGE)/$(UBOOT)-u-boot.img $@.boot/u-boot.img + $(CP) $(IMAGE_KERNEL) $@.boot/uImage + $(foreach dts,$(DEVICE_DTS), \ + $(CP) \ + $(DTS_DIR)/$(dts).dtb \ + $@.boot/; + ) -Image/BuildKernel/Template/generic=$(call Image/BuildKernel/Template) -Image/InstallKernel/Template/generic=$(call Image/InstallKernel/Template) + mkimage -A arm -O linux -T script -C none -a 0 -e 0 \ + -n '$(DEVICE_ID) OpenWrt bootscript' \ + -d $(BOOT_SCRIPT) \ + $@.boot/boot.scr -Image/BuildKernel/Template/IMX6DL_WANDBOARD=$(call Image/BuildKernel/Template,imx6dl-wandboard) -Image/InstallKernel/Template/IMX6DL_WANDBOARD=$(call Image/InstallKernel/Template,imx6dl-wandboard) + cp $@ $@.fs -Image/BuildKernel/Template/VENTANA=$(foreach dts,$(shell echo $(VENTANA_DTS)),$(call Image/BuildKernel/Template,$(dts))) -Image/InstallKernel/Template/VENTANA=$(call Image/InstallKernel/Template,$(VENTANA_DTS)) -Image/ubifs/VENTANA=$(call ubifs_imx_gateworks_ventana) + $(SCRIPT_DIR)/gen_image_generic.sh $@ \ + $(CONFIG_TARGET_KERNEL_PARTSIZE) \ + $@.boot \ + $(CONFIG_TARGET_ROOTFS_PARTSIZE) \ + $@.fs \ + 1024 + dd if=$(STAGING_DIR_IMAGE)/$(UBOOT)-SPL of=$@ bs=1024 seek=1 conv=notrunc -define Image/BuildKernel - $(call Image/BuildKernel/Template/$(PROFILE)) + rm -rf $@.boot $@.fs endef -define Image/InstallKernel - $(call Image/InstallKernel/Template/$(PROFILE)) - $(if $(Image/ubifs/$(PROFILE)), \ - $(call Image/ubifs/$(PROFILE)) - ) +################################################# +# Devices +################################################# + +KERNEL_LOADADDR=0x10008000 + +define Device/Default + PROFILES := Generic + FILESYSTEMS := squashfs ext4 + KERNEL_INSTALL := 1 + KERNEL_SUFFIX := -uImage + KERNEL_NAME := zImage + KERNEL_PREFIX := $$(IMAGE_PREFIX) + KERNEL := kernel-bin | uImage none + IMAGES := endef -define Image/Build - $(if $(Image/Build/$(1)), \ - $(call Image/Build/$(1),$(1)), \ - $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-$(1).img \ - ) +define Device/ventana + DEVICE_TITLE := Gateworks Ventana family (normal NAND flash) + DEVICE_DTS:= \ + imx6dl-gw51xx \ + imx6dl-gw52xx \ + imx6dl-gw53xx \ + imx6dl-gw54xx \ + imx6dl-gw551x \ + imx6dl-gw552x \ + imx6dl-gw553x \ + imx6dl-gw5904 \ + imx6q-gw51xx \ + imx6q-gw52xx \ + imx6q-gw53xx \ + imx6q-gw54xx \ + imx6q-gw5400-a \ + imx6q-gw551x \ + imx6q-gw552x \ + imx6q-gw553x \ + imx6q-gw5904 + DEVICE_PACKAGES := kmod-sky2 kmod-sound-core kmod-sound-soc-imx kmod-sound-soc-imx-sgtl5000 \ + kmod-can kmod-can-flexcan kmod-can-raw \ + kmod-hwmon-gsc \ + kmod-leds-gpio kmod-pps-gpio \ + kobs-ng + KERNEL += | boot-overlay + IMAGES := nand.ubi bootfs.tar.gz + IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1).$$(2) + UBINIZE_PARTS = boot=$$(KDIR_KERNEL_IMAGE).boot.ubifs=15 + IMAGE/nand.ubi := append-ubi + IMAGE/bootfs.tar.gz := bootfs.tar.gz | install-dtb + IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1)-$$(2) + PAGESIZE := 2048 + BLOCKSIZE := 128k + MKUBIFS_OPTS := -m $$(PAGESIZE) -e 124KiB +endef +TARGET_DEVICES += ventana + +define Device/ventana-large + $(Device/ventana) + DEVICE_NAME := ventana + DEVICE_TITLE := Gateworks Ventana family (large NAND flash) + IMAGES := nand.ubi + PAGESIZE := 4096 + BLOCKSIZE := 256k + MKUBIFS_OPTS := -m $$(PAGESIZE) -e 248KiB +endef +TARGET_DEVICES += ventana-large + +define Device/wandboard + DEVICE_TITLE := Wandboard Dual + DEVICE_DTS := imx6dl-wandboard +endef +TARGET_DEVICES += wandboard + +define Device/cubox-i + KERNEL := kernel-bin | install-dtb + UBOOT := mx6cuboxi + BOOT_SCRIPT = bootscript-cubox + DEVICE_NAME := cubox + DEVICE_TITLE := SolidRun CuBox-i + DEVICE_PACKAGES := kmod-drm-imx kmod-drm-imx-hdmi kmod-usb-hid + DEVICE_DTS := imx6q-cubox-i imx6dl-cubox-i imx6q-hummingboard imx6dl-hummingboard + IMAGES := combined.bin + FILESYSTEMS := squashfs + IMAGE/combined.bin := append-rootfs | pad-extra 128k | imx6-sdcard endef +TARGET_DEVICES += cubox-i $(eval $(call BuildImage))