12e819ed5454a363290c73bad95dd8d462c6a8f3
[openwrt/staging/jow.git] / target / linux / mediatek / image / mt7622.mk
1 DTS_DIR := $(DTS_DIR)/mediatek
2
3 define Image/Prepare
4 # For UBI we want only one extra block
5 rm -f $(KDIR)/ubi_mark
6 echo -ne '\xde\xad\xc0\xde' > $(KDIR)/ubi_mark
7 endef
8
9 define Build/buffalo-kernel-trx
10 $(eval magic=$(word 1,$(1)))
11 $(eval dummy=$(word 2,$(1)))
12 $(eval kern_size=$(if $(KERNEL_SIZE),$(KERNEL_SIZE),0x400000))
13
14 $(if $(dummy),touch $(dummy))
15 $(STAGING_DIR_HOST)/bin/otrx create $@.new \
16 $(if $(magic),-M $(magic),) \
17 -f $@ \
18 $(if $(dummy),\
19 -a 0x20000 \
20 -b $$(( $(subst k, * 1024,$(kern_size)) )) \
21 -f $(dummy),)
22 mv $@.new $@
23 endef
24
25 define Build/bl2
26 cat $(STAGING_DIR_IMAGE)/mt7622-$1-bl2.img >> $@
27 endef
28
29 define Build/bl31-uboot
30 cat $(STAGING_DIR_IMAGE)/mt7622_$1-u-boot.fip >> $@
31 endef
32
33 define Build/mt7622-gpt
34 cp $@ $@.tmp 2>/dev/null || true
35 ptgen -g -o $@.tmp -a 1 -l 1024 \
36 $(if $(findstring sdmmc,$1), \
37 -H \
38 -t 0x83 -N bl2 -r -p 512k@512k \
39 ) \
40 -t 0xef -N fip -r -p 2M@2M \
41 -t 0x83 -N ubootenv -r -p 1M@4M \
42 -N recovery -r -p 32M@6M \
43 $(if $(findstring sdmmc,$1), \
44 -N install -r -p 7M@38M \
45 -t 0x2e -N production -p $(CONFIG_TARGET_ROOTFS_PARTSIZE)M@45M \
46 ) \
47 $(if $(findstring emmc,$1), \
48 -t 0x2e -N production -p $(CONFIG_TARGET_ROOTFS_PARTSIZE)M@40M \
49 )
50 cat $@.tmp >> $@
51 rm $@.tmp
52 endef
53
54 define Build/trx-nand
55 # kernel: always use 4 MiB (-28 B or TRX header) to allow upgrades even
56 # if it grows up between releases
57 # root: UBI with one extra block containing UBI mark to trigger erasing
58 # rest of partition
59 $(STAGING_DIR_HOST)/bin/otrx create $@.new \
60 -M 0x32504844 \
61 -f $(IMAGE_KERNEL) -a 0x20000 -b 0x400000 \
62 -f $@ \
63 -A $(KDIR)/ubi_mark -a 0x20000
64 mv $@.new $@
65 endef
66
67 define Device/bananapi_bpi-r64
68 DEVICE_VENDOR := Bananapi
69 DEVICE_MODEL := BPi-R64
70 DEVICE_DTS := mt7622-bananapi-bpi-r64
71 DEVICE_DTS_OVERLAY := mt7622-bananapi-bpi-r64-pcie1 mt7622-bananapi-bpi-r64-sata
72 DEVICE_PACKAGES := kmod-ata-ahci-mtk kmod-btmtkuart kmod-usb3 e2fsprogs mkf2fs f2fsck
73 ARTIFACTS := emmc-preloader.bin emmc-bl31-uboot.fip sdcard.img.gz snand-preloader.bin snand-bl31-uboot.fip
74 IMAGES := sysupgrade.itb
75 KERNEL_INITRAMFS_SUFFIX := -recovery.itb
76 ARTIFACT/emmc-preloader.bin := bl2 emmc-2ddr
77 ARTIFACT/emmc-bl31-uboot.fip := bl31-uboot bananapi_bpi-r64-emmc
78 ARTIFACT/snand-preloader.bin := bl2 snand-2ddr
79 ARTIFACT/snand-bl31-uboot.fip := bl31-uboot bananapi_bpi-r64-snand
80 ARTIFACT/sdcard.img.gz := mt7622-gpt sdmmc |\
81 pad-to 512k | bl2 sdmmc-2ddr |\
82 pad-to 2048k | bl31-uboot bananapi_bpi-r64-sdmmc |\
83 $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),\
84 pad-to 6144k | append-image-stage initramfs-recovery.itb | check-size 38912k |\
85 ) \
86 pad-to 38912k | mt7622-gpt emmc |\
87 pad-to 39424k | bl2 emmc-2ddr |\
88 pad-to 40960k | bl31-uboot bananapi_bpi-r64-emmc |\
89 pad-to 43008k | bl2 snand-2ddr |\
90 pad-to 43520k | bl31-uboot bananapi_bpi-r64-snand |\
91 $(if $(CONFIG_TARGET_ROOTFS_SQUASHFS),\
92 pad-to 46080k | append-image squashfs-sysupgrade.itb | check-size | gzip \
93 )
94 IMAGE_SIZE := $$(shell expr 45 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE))m
95 KERNEL := kernel-bin | gzip
96 KERNEL_INITRAMFS := kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb with-initrd | pad-to 128k
97 IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb external-static-with-rootfs | append-metadata
98 endef
99 TARGET_DEVICES += bananapi_bpi-r64
100
101 define Device/buffalo_wsr-2533dhp2
102 DEVICE_VENDOR := Buffalo
103 DEVICE_MODEL := WSR-2533DHP2
104 DEVICE_DTS := mt7622-buffalo-wsr-2533dhp2
105 DEVICE_DTS_DIR := ../dts
106 IMAGE_SIZE := 59392k
107 KERNEL_SIZE := 4096k
108 BLOCKSIZE := 128k
109 PAGESIZE := 2048
110 SUBPAGESIZE := 512
111 UBINIZE_OPTS := -E 5
112 BUFFALO_TAG_PLATFORM := MTK
113 BUFFALO_TAG_VERSION := 9.99
114 BUFFALO_TAG_MINOR := 9.99
115 IMAGES += factory.bin factory-uboot.bin
116 KERNEL_INITRAMFS := kernel-bin | lzma | \
117 fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | \
118 buffalo-kernel-trx
119 IMAGE/factory.bin := append-ubi | trx-nand | \
120 buffalo-enc WSR-2533DHP2 $$(BUFFALO_TAG_VERSION) -l | \
121 buffalo-tag-dhp WSR-2533DHP2 JP JP | buffalo-enc-tag -l | buffalo-dhp-image
122 IMAGE/factory-uboot.bin := append-ubi | trx-nand
123 IMAGE/sysupgrade.bin := append-kernel | \
124 buffalo-kernel-trx 0x32504844 $(KDIR)/tmp/$$(DEVICE_NAME).null | \
125 sysupgrade-tar kernel=$$$$@ | append-metadata
126 DEVICE_PACKAGES := kmod-mt7615-firmware swconfig
127 endef
128 TARGET_DEVICES += buffalo_wsr-2533dhp2
129
130 define Device/elecom_wrc-2533gent
131 DEVICE_VENDOR := Elecom
132 DEVICE_MODEL := WRC-2533GENT
133 DEVICE_DTS := mt7622-elecom-wrc-2533gent
134 DEVICE_DTS_DIR := ../dts
135 DEVICE_PACKAGES := kmod-btmtkuart kmod-mt7615-firmware kmod-usb3 swconfig
136 endef
137 TARGET_DEVICES += elecom_wrc-2533gent
138
139 define Device/elecom_wrc-x3200gst3
140 DEVICE_VENDOR := ELECOM
141 DEVICE_MODEL := WRC-X3200GST3
142 DEVICE_DTS := mt7622-elecom-wrc-x3200gst3
143 DEVICE_DTS_DIR := ../dts
144 IMAGE_SIZE := 25600k
145 KERNEL_SIZE := 6144k
146 BLOCKSIZE := 128k
147 PAGESIZE := 2048
148 UBINIZE_OPTS := -E 5
149 IMAGES += factory.bin
150 IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | \
151 append-ubi | check-size | \
152 elecom-wrc-gs-factory WRC-X3200GST3 0.00 -N | \
153 append-string MT7622_ELECOM_WRC-X3200GST3
154 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
155 DEVICE_PACKAGES := kmod-mt7915-firmware
156 endef
157 TARGET_DEVICES += elecom_wrc-x3200gst3
158
159 define Device/linksys_e8450
160 DEVICE_VENDOR := Linksys
161 DEVICE_MODEL := E8450
162 DEVICE_ALT0_VENDOR := Belkin
163 DEVICE_ALT0_MODEL := RT3200
164 DEVICE_DTS := mt7622-linksys-e8450
165 DEVICE_DTS_DIR := ../dts
166 DEVICE_PACKAGES := kmod-mt7915-firmware kmod-usb3
167 endef
168 TARGET_DEVICES += linksys_e8450
169
170 define Device/linksys_e8450-ubi
171 DEVICE_VENDOR := Linksys
172 DEVICE_MODEL := E8450
173 DEVICE_VARIANT := UBI
174 DEVICE_ALT0_VENDOR := Belkin
175 DEVICE_ALT0_MODEL := RT3200
176 DEVICE_ALT0_VARIANT := UBI
177 DEVICE_DTS := mt7622-linksys-e8450-ubi
178 DEVICE_DTS_DIR := ../dts
179 DEVICE_PACKAGES := kmod-mt7915-firmware kmod-usb3
180 UBINIZE_OPTS := -E 5
181 BLOCKSIZE := 128k
182 PAGESIZE := 2048
183 UBOOTENV_IN_UBI := 1
184 KERNEL_IN_UBI := 1
185 KERNEL := kernel-bin | gzip
186 # recovery can also be used with stock firmware web-ui, hence the padding...
187 KERNEL_INITRAMFS := kernel-bin | lzma | \
188 fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 128k
189 KERNEL_INITRAMFS_SUFFIX := -recovery.itb
190 IMAGES := sysupgrade.itb
191 IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | append-metadata
192 ARTIFACTS := preloader.bin bl31-uboot.fip
193 ARTIFACT/preloader.bin := bl2 snand-1ddr
194 ARTIFACT/bl31-uboot.fip := bl31-uboot linksys_e8450
195 endef
196 TARGET_DEVICES += linksys_e8450-ubi
197
198 define Device/mediatek_mt7622-rfb1
199 DEVICE_VENDOR := MediaTek
200 DEVICE_MODEL := MTK7622 rfb1 AP
201 DEVICE_DTS := mt7622-rfb1
202 DEVICE_PACKAGES := kmod-ata-ahci-mtk kmod-btmtkuart kmod-usb3
203 endef
204 TARGET_DEVICES += mediatek_mt7622-rfb1
205
206 define Device/mediatek_mt7622-rfb1-ubi
207 DEVICE_VENDOR := MediaTek
208 DEVICE_MODEL := MTK7622 rfb1 AP (UBI)
209 DEVICE_DTS := mt7622-rfb1-ubi
210 DEVICE_DTS_DIR := ../dts
211 DEVICE_PACKAGES := kmod-ata-ahci-mtk kmod-btmtkuart kmod-usb3
212 BOARD_NAME := mediatek,mt7622-rfb1-ubi
213 UBINIZE_OPTS := -E 5
214 BLOCKSIZE := 128k
215 PAGESIZE := 2048
216 KERNEL_SIZE := 4194304
217 IMAGE_SIZE := 32768k
218 IMAGES += factory.bin
219 IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | \
220 check-size $$$$(IMAGE_SIZE)
221 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
222 endef
223 TARGET_DEVICES += mediatek_mt7622-rfb1-ubi
224
225 define Device/netgear_wax206
226 $(Device/dsa-migration)
227 DEVICE_VENDOR := NETGEAR
228 DEVICE_MODEL := WAX206
229 DEVICE_DTS := mt7622-netgear-wax206
230 DEVICE_DTS_DIR := ../dts
231 NETGEAR_ENC_MODEL := WAX206
232 NETGEAR_ENC_REGION := US
233 DEVICE_PACKAGES := kmod-mt7915-firmware
234 UBINIZE_OPTS := -E 5
235 BLOCKSIZE := 128k
236 PAGESIZE := 2048
237 KERNEL_SIZE := 6144k
238 IMAGE_SIZE := 32768k
239 KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb | \
240 append-squashfs4-fakeroot
241 # recovery can also be used with stock firmware web-ui, hence the padding...
242 KERNEL_INITRAMFS := kernel-bin | lzma | \
243 fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 128k
244 KERNEL_INITRAMFS_SUFFIX := -recovery.itb
245 IMAGES += factory.img
246 IMAGE/factory.img := append-kernel | pad-to $$(KERNEL_SIZE) | \
247 append-ubi | check-size | netgear-encrypted-factory
248 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
249 endef
250 TARGET_DEVICES += netgear_wax206
251
252 define Device/ruijie_rg-ew3200gx-pro
253 DEVICE_VENDOR := Ruijie
254 DEVICE_MODEL := RG-EW3200GX PRO
255 DEVICE_DTS := mt7622-ruijie-rg-ew3200gx-pro
256 DEVICE_DTS_DIR := ../dts
257 DEVICE_PACKAGES := kmod-mt7915-firmware
258 endef
259 TARGET_DEVICES += ruijie_rg-ew3200gx-pro
260
261 define Device/reyee_ax3200-e5
262 DEVICE_VENDOR := reyee
263 DEVICE_MODEL := AX3200 E5
264 DEVICE_DTS := mt7622-reyee-ax3200-e5
265 DEVICE_DTS_DIR := ../dts
266 DEVICE_PACKAGES := kmod-mt7915-firmware
267 endef
268 TARGET_DEVICES += reyee_ax3200-e5
269
270 define Device/totolink_a8000ru
271 DEVICE_VENDOR := TOTOLINK
272 DEVICE_MODEL := A8000RU
273 DEVICE_DTS := mt7622-totolink-a8000ru
274 DEVICE_DTS_DIR := ../dts
275 DEVICE_PACKAGES := kmod-mt7615-firmware swconfig
276 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
277 endef
278 TARGET_DEVICES += totolink_a8000ru
279
280 define Device/ubnt_unifi-6-lr-v1
281 DEVICE_VENDOR := Ubiquiti
282 DEVICE_MODEL := UniFi 6 LR
283 DEVICE_VARIANT := v1
284 DEVICE_DTS_CONFIG := config@1
285 DEVICE_DTS := mt7622-ubnt-unifi-6-lr-v1
286 DEVICE_DTS_DIR := ../dts
287 DEVICE_PACKAGES := kmod-mt7915-firmware kmod-leds-ubnt-ledbar
288 SUPPORTED_DEVICES += ubnt,unifi-6-lr
289 endef
290 TARGET_DEVICES += ubnt_unifi-6-lr-v1
291
292 define Device/ubnt_unifi-6-lr-v1-ubootmod
293 DEVICE_VENDOR := Ubiquiti
294 DEVICE_MODEL := UniFi 6 LR
295 DEVICE_VARIANT := v1 U-Boot mod
296 DEVICE_DTS := mt7622-ubnt-unifi-6-lr-v1-ubootmod
297 DEVICE_DTS_DIR := ../dts
298 DEVICE_PACKAGES := kmod-mt7915-firmware kmod-leds-ubnt-ledbar
299 KERNEL := kernel-bin | lzma
300 KERNEL_INITRAMFS_SUFFIX := -recovery.itb
301 KERNEL_INITRAMFS := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
302 IMAGES := sysupgrade.itb
303 IMAGE/sysupgrade.itb := append-kernel | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | pad-rootfs | append-metadata
304 ARTIFACTS := preloader.bin bl31-uboot.fip
305 ARTIFACT/preloader.bin := bl2 nor-2ddr
306 ARTIFACT/bl31-uboot.fip := bl31-uboot ubnt_unifi-6-lr
307 SUPPORTED_DEVICES += ubnt,unifi-6-lr-ubootmod
308 endef
309 TARGET_DEVICES += ubnt_unifi-6-lr-v1-ubootmod
310
311 define Device/ubnt_unifi-6-lr-v2
312 DEVICE_VENDOR := Ubiquiti
313 DEVICE_MODEL := UniFi 6 LR
314 DEVICE_VARIANT := v2
315 DEVICE_DTS_CONFIG := config@1
316 DEVICE_DTS := mt7622-ubnt-unifi-6-lr-v2
317 DEVICE_DTS_DIR := ../dts
318 DEVICE_PACKAGES := kmod-mt7915-firmware
319 endef
320 TARGET_DEVICES += ubnt_unifi-6-lr-v2
321
322 define Device/ubnt_unifi-6-lr-v2-ubootmod
323 DEVICE_VENDOR := Ubiquiti
324 DEVICE_MODEL := UniFi 6 LR
325 DEVICE_VARIANT := v2 U-Boot mod
326 DEVICE_DTS := mt7622-ubnt-unifi-6-lr-v2-ubootmod
327 DEVICE_DTS_DIR := ../dts
328 DEVICE_PACKAGES := kmod-mt7915-firmware
329 KERNEL := kernel-bin | lzma
330 KERNEL_INITRAMFS_SUFFIX := -recovery.itb
331 KERNEL_INITRAMFS := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
332 IMAGES := sysupgrade.itb
333 IMAGE/sysupgrade.itb := append-kernel | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | pad-rootfs | append-metadata
334 ARTIFACTS := preloader.bin bl31-uboot.fip
335 ARTIFACT/preloader.bin := bl2 nor-2ddr
336 ARTIFACT/bl31-uboot.fip := bl31-uboot ubnt_unifi-6-lr
337 endef
338 TARGET_DEVICES += ubnt_unifi-6-lr-v2-ubootmod
339
340 define Device/xiaomi_redmi-router-ax6s
341 DEVICE_VENDOR := Xiaomi
342 DEVICE_MODEL := Redmi Router AX6S
343 DEVICE_ALT0_VENDOR := Xiaomi
344 DEVICE_ALT0_MODEL := Router AX3200
345 DEVICE_DTS := mt7622-xiaomi-redmi-router-ax6s
346 DEVICE_DTS_DIR := ../dts
347 BOARD_NAME := xiaomi,redmi-router-ax6s
348 DEVICE_PACKAGES := kmod-mt7915-firmware
349 UBINIZE_OPTS := -E 5
350 IMAGES += factory.bin
351 BLOCKSIZE := 128k
352 PAGESIZE := 2048
353 KERNEL_SIZE := 4096k
354 KERNEL_INITRAMFS_SUFFIX := -recovery.itb
355 IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi
356 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
357 endef
358 TARGET_DEVICES += xiaomi_redmi-router-ax6s