ath79: fix 5GHz on QCA9886 variant of ZTE MF286
[openwrt/openwrt.git] / target / linux / ath79 / image / nand.mk
1 define Build/dongwon-header
2 head -c 4 $@ > $@.tmp
3 head -c 8 /dev/zero >> $@.tmp
4 tail -c +9 $@ >> $@.tmp
5 ( \
6 header_crc="$$(head -c 68 $@.tmp | gzip -c | \
7 tail -c 8 | od -An -N4 -tx4 --endian little | tr -d ' \n')"; \
8 printf "$$(echo $$header_crc | sed 's/../\\x&/g')" | \
9 dd of=$@.tmp bs=4 count=1 seek=1 conv=notrunc \
10 )
11 mv $@.tmp $@
12 endef
13
14 define Build/meraki-header
15 -$(STAGING_DIR_HOST)/bin/mkmerakifw \
16 -B $(1) -s \
17 -i $@ \
18 -o $@.new
19 @mv $@.new $@
20 endef
21
22 # attention: only zlib compression is allowed for the boot fs
23 define Build/zyxel-buildkerneljffs
24 mkdir -p $@.tmp/boot
25 cp $@ $@.tmp/boot/vmlinux.lzma.uImage
26 $(STAGING_DIR_HOST)/bin/mkfs.jffs2 \
27 --big-endian --squash-uids -v -e 128KiB -q -f -n -x lzma -x rtime \
28 -o $@ \
29 -d $@.tmp
30 rm -rf $@.tmp
31 endef
32
33 define Build/zyxel-factory
34 let \
35 maxsize="$(subst k,* 1024,$(RAS_ROOTFS_SIZE))"; \
36 let size="$$(stat -c%s $@)"; \
37 if [ $$size -lt $$maxsize ]; then \
38 $(STAGING_DIR_HOST)/bin/mkrasimage \
39 -b $(RAS_BOARD) \
40 -v $(RAS_VERSION) \
41 -r $@ \
42 -s $$maxsize \
43 -o $@.new \
44 -l 131072 \
45 && mv $@.new $@ ; \
46 fi
47 endef
48
49 define Device/8dev_rambutan
50 SOC := qca9557
51 DEVICE_VENDOR := 8devices
52 DEVICE_MODEL := Rambutan
53 DEVICE_PACKAGES := kmod-usb2
54 BLOCKSIZE := 128k
55 PAGESIZE := 2048
56 KERNEL_SIZE := 4096k
57 KERNEL_IN_UBI := 1
58 IMAGES := factory.bin sysupgrade.tar
59 IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
60 IMAGE/factory.bin := append-ubi
61 endef
62 TARGET_DEVICES += 8dev_rambutan
63
64 define Device/aerohive_hiveap-121
65 SOC := ar9344
66 DEVICE_VENDOR := Aerohive
67 DEVICE_MODEL := HiveAP 121
68 DEVICE_PACKAGES := kmod-usb2
69 BLOCKSIZE := 128k
70 PAGESIZE := 2048
71 IMAGE_SIZE := 116m
72 KERNEL_SIZE := 5120k
73 UBINIZE_OPTS := -E 5
74 SUPPORTED_DEVICES += hiveap-121
75 IMAGES += factory.bin
76 IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
77 check-size
78 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
79 endef
80 TARGET_DEVICES += aerohive_hiveap-121
81
82 define Device/domywifi_dw33d
83 SOC := qca9558
84 DEVICE_VENDOR := DomyWifi
85 DEVICE_MODEL := DW33D
86 DEVICE_PACKAGES := kmod-usb2 kmod-usb-storage kmod-usb-ledtrig-usbport \
87 kmod-ath10k-ct ath10k-firmware-qca988x-ct
88 KERNEL_SIZE := 5120k
89 IMAGE_SIZE := 98304k
90 BLOCKSIZE := 128k
91 PAGESIZE := 2048
92 UBINIZE_OPTS := -E 5
93 IMAGES += factory.bin
94 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
95 IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
96 check-size
97 endef
98 TARGET_DEVICES += domywifi_dw33d
99
100 define Device/dongwon_dw02-412h
101 SOC := qca9557
102 DEVICE_VENDOR := Dongwon T&I
103 DEVICE_MODEL := DW02-412H
104 DEVICE_ALT0_VENDOR := KT
105 DEVICE_ALT0_MODEL := GiGA WiFi home
106 DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
107 KERNEL_SIZE := 8192k
108 BLOCKSIZE := 128k
109 PAGESIZE := 2048
110 KERNEL := $$(KERNEL) | dongwon-header
111 KERNEL_INITRAMFS := $$(KERNEL)
112 UBINIZE_OPTS := -E 5
113 IMAGES += factory.img
114 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
115 check-size
116 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
117 endef
118
119 define Device/dongwon_dw02-412h-64m
120 $(Device/dongwon_dw02-412h)
121 DEVICE_VARIANT := (64M)
122 DEVICE_ALT0_VARIANT := (64M)
123 IMAGE_SIZE := 49152k
124 endef
125 TARGET_DEVICES += dongwon_dw02-412h-64m
126
127 define Device/dongwon_dw02-412h-128m
128 $(Device/dongwon_dw02-412h)
129 DEVICE_VARIANT := (128M)
130 DEVICE_ALT0_VARIANT := (128M)
131 IMAGE_SIZE := 114688k
132 endef
133 TARGET_DEVICES += dongwon_dw02-412h-128m
134
135 define Device/glinet_gl-ar300m-common-nand
136 SOC := qca9531
137 DEVICE_VENDOR := GL.iNet
138 DEVICE_MODEL := GL-AR300M
139 DEVICE_PACKAGES := kmod-usb2
140 KERNEL_SIZE := 4096k
141 IMAGE_SIZE := 16000k
142 PAGESIZE := 2048
143 VID_HDR_OFFSET := 2048
144 endef
145
146 define Device/glinet_gl-ar300m-nand
147 $(Device/glinet_gl-ar300m-common-nand)
148 DEVICE_VARIANT := NAND
149 BLOCKSIZE := 128k
150 IMAGES += factory.img
151 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
152 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
153 SUPPORTED_DEVICES += glinet,gl-ar300m-nor
154 endef
155 TARGET_DEVICES += glinet_gl-ar300m-nand
156
157 define Device/glinet_gl-ar300m-nor
158 $(Device/glinet_gl-ar300m-common-nand)
159 DEVICE_VARIANT := NOR
160 SUPPORTED_DEVICES += glinet,gl-ar300m-nand gl-ar300m
161 endef
162 TARGET_DEVICES += glinet_gl-ar300m-nor
163
164 define Device/glinet_gl-ar750s-common
165 SOC := qca9563
166 DEVICE_VENDOR := GL.iNet
167 DEVICE_MODEL := GL-AR750S
168 DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct kmod-usb2 \
169 kmod-usb-storage block-mount
170 IMAGE_SIZE := 16000k
171 endef
172
173 define Device/glinet_gl-ar750s-nor-nand
174 $(Device/glinet_gl-ar750s-common)
175 DEVICE_VARIANT := NOR/NAND
176 KERNEL_SIZE := 4096k
177 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
178 SUPPORTED_DEVICES += glinet,gl-ar750s-nor
179 endef
180 TARGET_DEVICES += glinet_gl-ar750s-nor-nand
181
182 define Device/glinet_gl-ar750s-nor
183 $(Device/glinet_gl-ar750s-common)
184 DEVICE_VARIANT := NOR
185 SUPPORTED_DEVICES += gl-ar750s glinet,gl-ar750s glinet,gl-ar750s-nor-nand
186 endef
187 TARGET_DEVICES += glinet_gl-ar750s-nor
188
189 define Device/glinet_gl-e750
190 SOC := qca9531
191 DEVICE_VENDOR := GL.iNet
192 DEVICE_MODEL := GL-E750
193 DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct kmod-usb2
194 SUPPORTED_DEVICES += gl-e750
195 KERNEL_SIZE := 4096k
196 IMAGE_SIZE := 131072k
197 PAGESIZE := 2048
198 VID_HDR_OFFSET := 2048
199 BLOCKSIZE := 128k
200 IMAGES += factory.img
201 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
202 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
203 endef
204 TARGET_DEVICES += glinet_gl-e750
205
206 define Device/glinet_gl-xe300
207 SOC := qca9531
208 DEVICE_VENDOR := GL.iNet
209 DEVICE_MODEL := GL-XE300
210 DEVICE_PACKAGES := kmod-usb2 block-mount kmod-usb-serial-ch341 \
211 kmod-usb-net-qmi-wwan uqmi
212 KERNEL_SIZE := 4096k
213 IMAGE_SIZE := 131072k
214 PAGESIZE := 2048
215 VID_HDR_OFFSET := 2048
216 BLOCKSIZE := 128k
217 IMAGES += factory.img
218 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
219 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
220 endef
221 TARGET_DEVICES += glinet_gl-xe300
222
223 define Device/glinet_gl-x1200-common
224 SOC := qca9563
225 DEVICE_VENDOR := GL.iNet
226 DEVICE_MODEL := GL-X1200
227 DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct-htt kmod-usb2 \
228 kmod-usb-storage block-mount kmod-usb-net-qmi-wwan uqmi
229 IMAGE_SIZE := 16000k
230 endef
231
232 define Device/glinet_gl-x1200-nor-nand
233 $(Device/glinet_gl-x1200-common)
234 DEVICE_VARIANT := NOR/NAND
235 KERNEL_SIZE := 4096k
236 IMAGE_SIZE := 131072k
237 PAGESIZE := 2048
238 VID_HDR_OFFSET := 2048
239 BLOCKSIZE := 128k
240 IMAGES += factory.img
241 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
242 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
243 endef
244 TARGET_DEVICES += glinet_gl-x1200-nor-nand
245
246 define Device/glinet_gl-x1200-nor
247 $(Device/glinet_gl-x1200-common)
248 DEVICE_VARIANT := NOR
249 endef
250 TARGET_DEVICES += glinet_gl-x1200-nor
251
252 define Device/linksys_ea4500-v3
253 SOC := qca9558
254 DEVICE_VENDOR := Linksys
255 DEVICE_MODEL := EA4500
256 DEVICE_VARIANT := v3
257 DEVICE_PACKAGES := kmod-usb2
258 BLOCKSIZE := 128k
259 PAGESIZE := 2048
260 KERNEL_SIZE := 4096k
261 IMAGE_SIZE := 81920k
262 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
263 LINKSYS_HWNAME := EA4500V3
264 IMAGES += factory.img
265 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | \
266 append-ubi | check-size | linksys-image type=$$$$(LINKSYS_HWNAME)
267 UBINIZE_OPTS := -E 5
268 endef
269 TARGET_DEVICES += linksys_ea4500-v3
270
271 define Device/meraki_mr18
272 SOC := qca9557
273 DEVICE_VENDOR := Meraki
274 DEVICE_MODEL := MR18
275 DEVICE_PACKAGES := kmod-leds-uleds kmod-spi-gpio nu801
276 KERNEL_SIZE := 8m
277 BLOCKSIZE := 128k
278 PAGESIZE := 2048
279 LOADER_TYPE := bin
280 KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | meraki-header MR18
281 # Initramfs-build fails due to size issues
282 # KERNEL_INITRAMFS := $$(KERNEL)
283 KERNEL_INITRAMFS :=
284 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
285 endef
286 TARGET_DEVICES += meraki_mr18
287
288 # fake rootfs is mandatory, pad-offset 64 equals (1 * uimage_header)
289 define Device/netgear_ath79_nand
290 DEVICE_VENDOR := NETGEAR
291 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
292 KERNEL_SIZE := 4096k
293 BLOCKSIZE := 128k
294 PAGESIZE := 2048
295 IMAGE_SIZE := 25600k
296 KERNEL := kernel-bin | append-dtb | lzma | uImage lzma | \
297 pad-offset $$(BLOCKSIZE) 64 | append-uImage-fakehdr filesystem $$(UIMAGE_MAGIC)
298 IMAGES := sysupgrade.bin factory.img
299 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | \
300 append-ubi | check-size | netgear-dni
301 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
302 UBINIZE_OPTS := -E 5
303 endef
304
305 define Device/netgear_pgzng1
306 SOC := ar9344
307 DEVICE_MODEL := PGZNG1
308 DEVICE_VENDOR := NETGEAR
309 DEVICE_ALT0_MODEL := Pulse Gateway
310 DEVICE_ALT0_VENDOR := ADT
311 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-i2c-gpio \
312 kmod-leds-pca955x kmod-rtc-isl1208 kmod-spi-dev
313 KERNEL_SIZE := 5120k
314 IMAGE_SIZE := 83968k
315 PAGESIZE := 2048
316 BLOCKSIZE := 128k
317 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
318 endef
319 TARGET_DEVICES += netgear_pgzng1
320
321 define Device/netgear_r6100
322 SOC := ar9344
323 DEVICE_MODEL := R6100
324 UIMAGE_MAGIC := 0x36303030
325 NETGEAR_BOARD_ID := R6100
326 NETGEAR_HW_ID := 29764434+0+128+128+2x2+2x2
327 $(Device/netgear_ath79_nand)
328 DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct
329 endef
330 TARGET_DEVICES += netgear_r6100
331
332 define Device/netgear_wndr3700-v4
333 SOC := ar9344
334 DEVICE_MODEL := WNDR3700
335 DEVICE_VARIANT := v4
336 UIMAGE_MAGIC := 0x33373033
337 NETGEAR_BOARD_ID := WNDR3700v4
338 NETGEAR_HW_ID := 29763948+128+128
339 $(Device/netgear_ath79_nand)
340 endef
341 TARGET_DEVICES += netgear_wndr3700-v4
342
343 define Device/netgear_wndr4300
344 SOC := ar9344
345 DEVICE_MODEL := WNDR4300
346 UIMAGE_MAGIC := 0x33373033
347 NETGEAR_BOARD_ID := WNDR4300
348 NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
349 $(Device/netgear_ath79_nand)
350 endef
351 TARGET_DEVICES += netgear_wndr4300
352
353 define Device/netgear_wndr4300sw
354 SOC := ar9344
355 DEVICE_MODEL := WNDR4300SW
356 UIMAGE_MAGIC := 0x33373033
357 NETGEAR_BOARD_ID := WNDR4300SW
358 NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
359 $(Device/netgear_ath79_nand)
360 endef
361 TARGET_DEVICES += netgear_wndr4300sw
362
363 define Device/netgear_wndr4300tn
364 SOC := ar9344
365 DEVICE_MODEL := WNDR4300TN
366 UIMAGE_MAGIC := 0x33373033
367 NETGEAR_BOARD_ID := WNDR4300TN
368 NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
369 $(Device/netgear_ath79_nand)
370 endef
371 TARGET_DEVICES += netgear_wndr4300tn
372
373 define Device/netgear_wndr4300-v2
374 SOC := qca9563
375 DEVICE_MODEL := WNDR4300
376 DEVICE_VARIANT := v2
377 UIMAGE_MAGIC := 0x27051956
378 NETGEAR_BOARD_ID := WNDR4500series
379 NETGEAR_HW_ID := 29764821+2+128+128+3x3+3x3+5508012175
380 $(Device/netgear_ath79_nand)
381 endef
382 TARGET_DEVICES += netgear_wndr4300-v2
383
384 define Device/netgear_wndr4500-v3
385 SOC := qca9563
386 DEVICE_MODEL := WNDR4500
387 DEVICE_VARIANT := v3
388 UIMAGE_MAGIC := 0x27051956
389 NETGEAR_BOARD_ID := WNDR4500series
390 NETGEAR_HW_ID := 29764821+2+128+128+3x3+3x3+5508012173
391 $(Device/netgear_ath79_nand)
392 endef
393 TARGET_DEVICES += netgear_wndr4500-v3
394
395 define Device/zte_mf28x_common
396 SOC := qca9563
397 DEVICE_VENDOR := ZTE
398 DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct
399 BLOCKSIZE := 128k
400 PAGESIZE := 2048
401 KERNEL_SIZE := 4096k
402 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
403 endef
404
405 define Device/zte_mf281
406 $(Device/zte_mf28x_common)
407 DEVICE_MODEL := MF281
408 KERNEL_SIZE := 6144k
409 IMAGE_SIZE := 29696k
410 IMAGES += factory.bin
411 IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
412 check-size
413 DEVICE_PACKAGES += ath10k-firmware-qca9888-ct kmod-usb-net-rndis \
414 kmod-usb-acm comgt-ncm
415 endef
416 TARGET_DEVICES += zte_mf281
417
418 define Device/zte_mf282
419 $(Device/zte_mf28x_common)
420 DEVICE_MODEL := MF282
421 DEVICE_PACKAGES += ath10k-firmware-qca988x-ct kmod-usb-net-qmi-wwan \
422 kmod-usb-serial-option uqmi
423 endef
424 TARGET_DEVICES += zte_mf282
425
426 define Device/zte_mf286
427 $(Device/zte_mf28x_common)
428 DEVICE_MODEL := MF286
429 DEVICE_PACKAGES += ath10k-firmware-qca988x-ct ath10k-firmware-qca9888-ct \
430 kmod-usb-net-qmi-wwan kmod-usb-serial-option uqmi
431 endef
432 TARGET_DEVICES += zte_mf286
433
434 define Device/zte_mf286a
435 $(Device/zte_mf28x_common)
436 DEVICE_MODEL := MF286A
437 DEVICE_PACKAGES += ath10k-firmware-qca9888-ct kmod-usb-net-qmi-wwan \
438 kmod-usb-serial-option uqmi
439 endef
440 TARGET_DEVICES += zte_mf286a
441
442 define Device/zte_mf286r
443 $(Device/zte_mf28x_common)
444 DEVICE_MODEL := MF286R
445 DEVICE_PACKAGES += ath10k-firmware-qca9888-ct kmod-usb-net-rndis kmod-usb-acm \
446 comgt-ncm
447 endef
448 TARGET_DEVICES += zte_mf286r
449
450 define Device/zyxel_nbg6716
451 SOC := qca9558
452 DEVICE_VENDOR := ZyXEL
453 DEVICE_MODEL := NBG6716
454 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
455 ath10k-firmware-qca988x-ct
456 RAS_BOARD := NBG6716
457 RAS_ROOTFS_SIZE := 29696k
458 RAS_VERSION := "OpenWrt Linux-$(LINUX_VERSION)"
459 KERNEL_SIZE := 4096k
460 BLOCKSIZE := 128k
461 PAGESIZE := 2048
462 LOADER_TYPE := bin
463 KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | uImage none | \
464 zyxel-buildkerneljffs | check-size 4096k
465 IMAGES := sysupgrade.tar sysupgrade-4M-Kernel.bin factory.bin
466 IMAGE/sysupgrade.tar/squashfs := append-rootfs | pad-to $$$$(BLOCKSIZE) | \
467 sysupgrade-tar rootfs=$$$$@ | append-metadata
468 IMAGE/sysupgrade-4M-Kernel.bin/squashfs := append-kernel | \
469 pad-to $$$$(KERNEL_SIZE) | append-ubi | pad-to 263192576 | gzip
470 IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
471 zyxel-factory
472 UBINIZE_OPTS := -E 5
473 endef
474 TARGET_DEVICES += zyxel_nbg6716
475
476 define Device/zyxel_emg2926_q10a
477 $(Device/zyxel_nbg6716)
478 DEVICE_MODEL := EMG2926-Q10A
479 RAS_BOARD := AAVK-EMG2926Q10A
480 endef
481 TARGET_DEVICES += zyxel_emg2926_q10a