X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=target%2Flinux%2Fimx6%2Fimage%2FMakefile;h=ad89da8d820759e5ff1a6d7565e87b1855225928;hp=a0772727d295ef8d6c5bb6777a29d0f48c9ac6e0;hb=a2386c384da501e862210f222994821580fe151c;hpb=416d58a3d65fa52b0f0089888af9c499daca8c4f diff --git a/target/linux/imx6/image/Makefile b/target/linux/imx6/image/Makefile index a0772727d2..ad89da8d82 100644 --- a/target/linux/imx6/image/Makefile +++ b/target/linux/imx6/image/Makefile @@ -7,58 +7,121 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/image.mk -BOARDS := \ - imx6dl-wandboard \ - imx6q-gw5400-a - -# emit FIT images, DTB's and generic zImage -define Image/BuildKernel - $(foreach board,$(BOARDS), - cp $(LINUX_DIR)/arch/arm/boot/dts/$(board).dtb $(BIN_DIR)/$(IMG_PREFIX)-$(board).dtb - - $(call Image/BuildKernel/MkFIT,$(board),$(KDIR)/zImage,$(BIN_DIR)/$(IMG_PREFIX)-$(board).dtb,none,0x10008000,0x10008000) - cp $(KDIR)/fit-$(board).itb $(BIN_DIR)/$(IMG_PREFIX)-$(board)-uImage.itb - - ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) - $(call Image/BuildKernel/MkFIT,$(board),$(KDIR)/zImage-initramfs,$(BIN_DIR)/$(IMG_PREFIX)-$(board).dtb,none,0x10008000,0x10008000,-initramfs) - cp $(KDIR)/fit-$(board)-initramfs.itb $(BIN_DIR)/$(IMG_PREFIX)-$(board)-uImage-initramfs.itb - endif +################################################# +# Images +################################################# + +DEVICE_VARS += MKUBIFS_OPTS + +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) \ + $(LINUX_DIR)/arch/$(ARCH)/boot/dts/$(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) - cp $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage + $(STAGING_DIR_HOST)/bin/mkfs.ubifs \ + --space-fixup --force-compr=zlib --squash-uids \ + $(MKUBIFS_OPTS) -c 8124 \ + -o $@.boot.ubifs -d $@.boot - ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) - cp $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs - endif + $(TAR) -C $@.boot -cf $@.boot.tar . endef -# board-specific sysupgrade image -define BuildFirmware/Generic - dd if=$(BIN_DIR)/$(IMG_PREFIX)-$(1)-uImage.itb of=$(KDIR)/uImage.pad bs=64k conv=sync; \ - dd if=$(KDIR)/root.$(2) of=$(KDIR)/root.$(2).pad bs=128k conv=sync; \ - sh $(TOPDIR)/scripts/combined-image.sh \ - $(KDIR)/uImage.pad \ - $(KDIR)/root.$(2).pad \ - $(BIN_DIR)/$(IMG_PREFIX)-$(patsubst jffs2-%,jffs2,$(patsubst squashfs-%,squashfs,$(1)))-sysupgrade.bin +define Build/bootfs.tar.gz + rm -rf $@.boot + mkdir -p $@.boot + + $(TAR) -C $@.boot -xf $(IMAGE_KERNEL).boot.tar + $(TAR) -C $@.boot \ + --numeric-owner --owner=0 --group=0 --transform "s,./,./boot/," \ + -czvf $@ . endef -define Image/Build - $(call Image/Build/$(1),$(1)) - $(foreach board,$(BOARDS), - $(call BuildFirmware/Generic,$(board),$(1)) - ) +################################################# +# 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 + IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1).$$(2) + IMAGES := endef -# rootfs and board-specific combined kernel+rootfs for convenience -define Image/Build/squashfs - $(call prepare_generic_squashfs,$(KDIR)/root.$(1)) - dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-$(1).img bs=128k conv=sync; \ - $(foreach board,$(BOARDS), - ( \ - dd if=$(BIN_DIR)/$(IMG_PREFIX)-$(board)-uImage.itb bs=2048k conv=sync; \ - dd if=$(KDIR)/root.$(1) bs=64k conv=sync; \ - ) > $(BIN_DIR)/$(IMG_PREFIX)-$(board)-$(1).bin - ) +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 \ + imx6q-gw51xx \ + imx6q-gw52xx \ + imx6q-gw53xx \ + imx6q-gw54xx \ + imx6q-gw5400-a \ + imx6q-gw551x \ + imx6q-gw552x \ + imx6q-gw553x + DEVICE_PACKAGES := kmod-thermal-imx kmod-sky2 kmod-usb-chipidea-imx kmod-usb-mxs-phy \ + 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 kmod-gw16083 \ + kobs-ng + KERNEL += | boot-overlay + IMAGES := nand.ubi bootfs.tar.gz + UBINIZE_OPTS := + 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 := 128KiB + MKUBIFS_OPTS := -m $$(PAGESIZE) -e 124KiB +endef + +define Device/ventana-large + $(Device/ventana) + DEVICE_NAME := ventana + DEVICE_TITLE := Gateworks Ventana family (large NAND flash) + IMAGES := nand.ubi + PAGESIZE := 4096 + BLOCKSIZE := 256KiB + MKUBIFS_OPTS := -m $$(PAGESIZE) -e 248KiB endef +define Device/wandboard + DEVICE_TITLE := Wandboard Dual + DEVICE_DTS := imx6dl-wandboard + DEVICE_PACKAGES := kmod-thermal-imx kmod-usb-chipidea-imx kmod-usb-mxs-phy +endef + +TARGET_DEVICES += \ + ventana ventana-large \ + wandboard + $(eval $(call BuildImage))