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