imx6: use ubinize-image.sh to fix build with per-device rootfs
[openwrt/openwrt.git] / target / linux / imx6 / image / Makefile
index 79055506f2e68cfd34228c53fc04482e78675c70..a7d68fbe977e3e3ab94f2786ccf163b6579ed7a0 100644 (file)
@@ -39,7 +39,7 @@ define Build/ubi-boot-overlay
                        $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)_$(word 1, $(1))/$(dts).dtb; \
        )
        mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
-               -n '$(DEVICE_ID) OpenWrt bootscript' \
+               -n '$(DEVICE_ID) LEDE bootscript' \
                -d ./bootscript-$(DEVICE_NAME) \
                $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)_$(word 1, $(1))/6x_bootscript-$(DEVICE_NAME)
        $(STAGING_DIR_HOST)/bin/mkfs.ubifs \
@@ -51,19 +51,37 @@ define Build/ubi-boot-overlay
                $(BIN_DIR)/$(IMG_PREFIX)-$(DEVICE_NAME)-bootfs_$(word 1, $(1)).ubifs
 
        # ubi
-       rm -rf p $(KDIR)/$(DEVICE_NAME)_$(word 1, $(1))
-       mkdir -p $(KDIR)/$(DEVICE_NAME)_$(word 1, $(1))
-       $(CP) $(word 2, $^) \
-               $(KDIR)/$(DEVICE_NAME)_$(word 1, $(1))/
-       $(CP) $(KDIR)/boot-$(DEVICE_NAME)-bootfs_$(word 1, $(1)).ubifs \
-               $(KDIR)/$(DEVICE_NAME)_$(word 1, $(1))/boot.ubifs
-       $(CP) ./ubinize-$(DEVICE_NAME).cfg \
-               $(KDIR)/$(DEVICE_NAME)_$(word 1, $(1))/ubinize.cfg
-       ( cd $(KDIR)/$(DEVICE_NAME)_$(word 1, $(1)); \
-               $(STAGING_DIR_HOST)/bin/ubinize \
-               -m $(word 2, $(1)) -p $(word 4, $(1)) -s $(word 2, $(1)) \
-               -o $@ \
-               ubinize.cfg \
+       sh $(TOPDIR)/scripts/ubinize-image.sh \
+               --part boot=$(KDIR)/boot-$(DEVICE_NAME)-bootfs_$(word 1, $(1)).ubifs=15 \
+               $(IMAGE_ROOTFS) $@ \
+               -m $(word 2, $(1)) -p $(word 4, $(1)) -s $(word 2, $(1))
+endef
+
+define Build/bootfs.tar.gz
+       # boot filesystem
+       rm -rf $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)
+       mkdir -p $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)
+       $(CP) $< $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)/$(IMG_PREFIX)-uImage
+       ln -sf $(IMG_PREFIX)-uImage \
+               $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)/uImage
+       $(foreach dts,$(shell echo $(DEVICE_DTS)), \
+               $(CP) $(LINUX_DIR)/arch/$(ARCH)/boot/dts/$(dts).dtb \
+                       $(BIN_DIR)/$(IMG_PREFIX)-$(dts).dtb; \
+               $(CP) $(LINUX_DIR)/arch/$(ARCH)/boot/dts/$(dts).dtb \
+                       $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)/$(IMG_PREFIX)-$(dts).dtb; \
+               ln -sf $(IMG_PREFIX)-$(dts).dtb \
+                       $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)/$(dts).dtb; \
+       )
+       mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
+               -n '$(DEVICE_ID) OpenWrt bootscript' \
+               -d ./bootscript-$(DEVICE_NAME) \
+               $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)/6x_bootscript-$(DEVICE_NAME)
+
+       # tar and zip
+       ( \
+               cd $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME); \
+               $(TAR) --numeric-owner --owner=0 --group=0 --transform "s,./,./boot/," \
+                       -czvf $(BIN_DIR)/$(IMG_PREFIX)-$(DEVICE_NAME)-bootfs.tar.gz . ; \
        )
 endef
 
@@ -74,43 +92,50 @@ endef
 KERNEL_LOADADDR=0x10008000
 
 define Device/Default
-       DEVICE_DTS :=
-       FILESYSTEMS := squashfs ext4
-       KERNEL_INSTALL := 1
-       KERNEL_SUFFIX := -uImage
-       KERNEL_NAME := zImage
-       KERNEL := kernel-bin | uImage none
-       IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1).$$(2)
-       IMAGES :=
+  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
 
-DEVICE_VARS += DEVICE_DTS
-
 define Device/ventana
-       PROFILES = Generic VENTANA
-       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
-       IMAGES := nand_normal.ubi nand_large.ubi
-       IMAGE/nand_normal.ubi := ubi-boot-overlay normal 2048 124KiB 128KiB 8124
-       IMAGE/nand_large.ubi := ubi-boot-overlay large 4096 248KiB 256KiB 8124
-       IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1)-$$(2)
+  DEVICE_TITLE := Gateworks Ventana family
+  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
+  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-rtc-ds1672 kmod-gpio-pca953x kmod-hwmon-gsc kmod-eeprom-at24 \
+       kmod-leds-gpio kmod-pps-gpio kmod-gw16083 \
+       kobs-ng
+  IMAGES := nand_normal.ubi nand_large.ubi bootfs.tar.gz
+  IMAGE/nand_normal.ubi := ubi-boot-overlay normal 2048 124KiB 128KiB 8124
+  IMAGE/nand_large.ubi := ubi-boot-overlay large 4096 248KiB 256KiB 8124
+  IMAGE/bootfs.tar.gz := bootfs.tar.gz
+  IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1)-$$(2)
 endef
 
 define Device/wandboard
-       PROFILES = Generic IMX6DL_WANDBOARD
-       DEVICE_DTS := imx6dl-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 += \