mediatek: mt7622: make sure image generation can run in parallel
[openwrt/staging/rmilecki.git] / target / linux / mediatek / image / mt7622.mk
index dee340accfbe4a15b006302c649a6eec739eb80a..d2c1fb5b13ec8864f5dddb20797aca7cda416036 100644 (file)
-KERNEL_LOADADDR := 0x44080000
+DTS_DIR := $(DTS_DIR)/mediatek
 
-define Device/bpi_bananapi-r64
-  DEVICE_VENDOR := Bpi
-  DEVICE_MODEL := Banana Pi R64
-  DEVICE_DTS := mt7622-bananapi-bpi-r64
-  DEVICE_DTS_DIR := $(DTS_DIR)/mediatek
-  SUPPORTED_DEVICES := bananapi,bpi-r64
-  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci-mtk
+ifdef CONFIG_LINUX_5_4
+  KERNEL_LOADADDR := 0x44080000
+else
+  KERNEL_LOADADDR := 0x44000000
+endif
+
+define Build/bl2
+       cat $(STAGING_DIR_IMAGE)/mt7622-$1-bl2.img >> $@
 endef
-TARGET_DEVICES += bpi_bananapi-r64
 
-define Device/bpi_bananapi-r64-rootdisk
-  DEVICE_VENDOR := Bpi
-  DEVICE_MODEL := Banana Pi R64 (rootdisk)
-  DEVICE_DTS := mt7622-bananapi-bpi-r64-rootdisk
-  DEVICE_DTS_DIR := $(DTS_DIR)/mediatek
-  SUPPORTED_DEVICES := bananapi,bpi-r64
-  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci-mtk
-  IMAGES := sysupgrade-emmc.bin.gz
-  IMAGE/sysupgrade-emmc.bin.gz := sysupgrade-emmc | gzip | append-metadata
+define Build/bl31-uboot
+       cat $(STAGING_DIR_IMAGE)/mt7622_$1-u-boot.fip >> $@
+endef
+
+define Build/mt7622-gpt
+       cp $@ $@.tmp || true
+       ptgen -g -o $@.tmp -h 4 -s 31 -a 1 -l 1024 -g \
+               -t 0xef \
+               $(if $(findstring sdmmc,$1), \
+                       -N bl2          -r      -p 512k@512k \
+               ) \
+                       -N fip          -r      -p 1M@2M \
+                       -N ubootenv     -r      -p 1M@4M \
+                       -N recovery     -r      -p 32M@6M \
+               $(if $(findstring sdmmc,$1), \
+                       -t 0x2e -N production   -p 216M@40M \
+               ) \
+               $(if $(findstring emmc,$1), \
+                       -t 0x2e -N production   -p 980M@40M \
+               )
+       dd if=$(STAGING_DIR_IMAGE)/mt7622-header_$1.bin bs=512 count=1 of=$@.tmp conv=notrunc
+       cat $@.tmp >> $@
+       rm $@.tmp
+endef
+
+define Device/bananapi_bpi-r64
+  DEVICE_VENDOR := Bananapi
+  DEVICE_MODEL := BPi-R64
+  DEVICE_DTS := mt7622-bananapi-bpi-r64
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci-mtk \
+                    kmod-mt7615e kmod-mt7615-firmware \
+                    uboot-mt7622_bananapi_bpi-r64-emmc \
+                    uboot-mt7622_bananapi_bpi-r64-sdmmc \
+                    e2fsprogs mkf2fs f2fsck \
+                    kmod-nls-cp437 kmod-nls-iso8859-1 kmod-vfat blockd
+  ARTIFACTS := sdcard.img
+  IMAGES := sysupgrade.itb
+  KERNEL_INITRAMFS_SUFFIX := -recovery.itb
+  ARTIFACT/sdcard.img          := mt7622-gpt sdmmc | pad-to 128k | mt7622-gpt emmc | pad-to 256k |\
+                                  bl2 emmc-2ddr | pad-to 512k | bl2 sdmmc-2ddr | pad-to 1M | bl31-uboot bananapi_bpi-r64-emmc | pad-to 2M |\
+                                  bl31-uboot bananapi_bpi-r64-sdmmc | pad-to 6M
+  KERNEL                       := kernel-bin | gzip
+  KERNEL_INITRAMFS             := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 128k
+  IMAGE/sysupgrade.itb         := append-kernel | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | append-metadata
 endef
-TARGET_DEVICES += bpi_bananapi-r64-rootdisk
+TARGET_DEVICES += bananapi_bpi-r64
 
 define Device/elecom_wrc-2533gent
   DEVICE_VENDOR := Elecom
   DEVICE_MODEL := WRC-2533GENT
   DEVICE_DTS := mt7622-elecom-wrc-2533gent
-  DEVICE_DTS_DIR := $(DTS_DIR)/mediatek
+  DEVICE_DTS_DIR := ../dts
   DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-mt7615e \
-       kmod-mt7615-firmware mt7622bt-firmware swconfig
+       kmod-mt7615-firmware kmod-btmtkuart swconfig
 endef
 TARGET_DEVICES += elecom_wrc-2533gent
 
+define Device/linksys_e8450
+  DEVICE_VENDOR := Linksys
+  DEVICE_MODEL := E8450
+  DEVICE_ALT0_VENDOR := Belkin
+  DEVICE_ALT0_MODEL := RT3200
+  DEVICE_DTS := mt7622-linksys-e8450
+  DEVICE_DTS_DIR := ../dts
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci-mtk \
+                    kmod-mt7615e kmod-mt7615-firmware kmod-mt7915e
+endef
+TARGET_DEVICES += linksys_e8450
+
+define Device/linksys_e8450-ubi
+  DEVICE_VENDOR := Linksys
+  DEVICE_MODEL := E8450
+  DEVICE_VARIANT := UBI
+  DEVICE_ALT0_VENDOR := Belkin
+  DEVICE_ALT0_MODEL := RT3200
+  DEVICE_ALT0_VARIANT := UBI
+  DEVICE_DTS := mt7622-linksys-e8450-ubi
+  DEVICE_DTS_DIR := ../dts
+  UBINIZE_OPTS := -E 5
+  BLOCKSIZE := 128k
+  PAGESIZE := 2048
+  UBOOTENV_IN_UBI := 1
+  KERNEL_IN_UBI := 1
+  KERNEL := kernel-bin | gzip
+# recovery can also be used with stock firmware web-ui, hence the padding...
+  KERNEL_INITRAMFS := kernel-bin | lzma | \
+       fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 128k
+  KERNEL_INITRAMFS_SUFFIX := -recovery.itb
+  IMAGES := sysupgrade.itb
+  IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | append-metadata
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci-mtk \
+                    kmod-mt7615e kmod-mt7615-firmware kmod-mt7915e \
+                    u-boot-mt7622_linksys_e8450 uboot-envtools
+  ARTIFACTS := preloader.bin bl31-uboot.fip
+  ARTIFACT/preloader.bin := bl2 snand-1ddr
+  ARTIFACT/bl31-uboot.fip := bl31-uboot linksys_e8450
+endef
+TARGET_DEVICES += linksys_e8450-ubi
+
 define Device/mediatek_mt7622-rfb1
   DEVICE_VENDOR := MediaTek
   DEVICE_MODEL := MTK7622 rfb1 AP
   DEVICE_DTS := mt7622-rfb1
-  DEVICE_DTS_DIR := $(DTS_DIR)/mediatek
   DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci-mtk
 endef
 TARGET_DEVICES += mediatek_mt7622-rfb1
 
-define Device/mediatek_mt7622-ubi
+define Device/mediatek_mt7622-rfb1-ubi
   DEVICE_VENDOR := MediaTek
-  DEVICE_MODEL := MTK7622 AP (UBI)
+  DEVICE_MODEL := MTK7622 rfb1 AP (UBI)
   DEVICE_DTS := mt7622-rfb1-ubi
-  DEVICE_DTS_DIR := $(DTS_DIR)/mediatek
+  DEVICE_DTS_DIR := ../dts
   UBINIZE_OPTS := -E 5
   BLOCKSIZE := 128k
   PAGESIZE := 2048
@@ -57,4 +133,13 @@ define Device/mediatek_mt7622-ubi
   IMAGE/sysupgrade.bin := sysupgrade-tar
   DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci-mtk
 endef
-TARGET_DEVICES += mediatek_mt7622-ubi
+TARGET_DEVICES += mediatek_mt7622-rfb1-ubi
+
+define Device/ubnt_unifi-6-lr
+  DEVICE_VENDOR := Ubiquiti
+  DEVICE_MODEL := UniFi 6 LR
+  DEVICE_DTS := mt7622-ubnt-unifi-6-lr
+  DEVICE_DTS_DIR := ../dts
+  DEVICE_PACKAGES := kmod-mt7915e
+endef
+TARGET_DEVICES += ubnt_unifi-6-lr