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