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