image: use helper function for size units
[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="$(call exp_units,$(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-s200-common
207 SOC := qca9531
208 DEVICE_VENDOR := GL.iNet
209 DEVICE_MODEL := GL-S200
210 DEVICE_PACKAGES := kmod-usb2 kmod-usb-serial-ch341
211 SUPPORTED_DEVICES += gl-s200 glinet,gl-s200
212 endef
213
214 define Device/glinet_gl-s200-nor
215 $(Device/glinet_gl-s200-common)
216 DEVICE_VARIANT := NOR
217 IMAGE_SIZE := 16000k
218 endef
219 TARGET_DEVICES += glinet_gl-s200-nor
220
221 define Device/glinet_gl-s200-nor-nand
222 $(Device/glinet_gl-s200-common)
223 DEVICE_VARIANT := NOR/NAND
224 KERNEL_SIZE := 4096k
225 BLOCKSIZE := 128k
226 PAGESIZE := 2048
227 VID_HDR_OFFSET := 2048
228 IMAGES += factory.img
229 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
230 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
231 SUPPORTED_DEVICES += gl-s200 glinet,gl-s200
232 endef
233 TARGET_DEVICES += glinet_gl-s200-nor-nand
234
235 define Device/glinet_gl-xe300
236 SOC := qca9531
237 DEVICE_VENDOR := GL.iNet
238 DEVICE_MODEL := GL-XE300
239 DEVICE_PACKAGES := kmod-usb2 block-mount kmod-usb-serial-ch341 \
240 kmod-usb-serial-option kmod-usb-net-qmi-wwan uqmi
241 KERNEL_SIZE := 4096k
242 IMAGE_SIZE := 131072k
243 PAGESIZE := 2048
244 VID_HDR_OFFSET := 2048
245 BLOCKSIZE := 128k
246 IMAGES += factory.img
247 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
248 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
249 endef
250 TARGET_DEVICES += glinet_gl-xe300
251
252 define Device/glinet_gl-x1200-common
253 SOC := qca9563
254 DEVICE_VENDOR := GL.iNet
255 DEVICE_MODEL := GL-X1200
256 DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct-htt kmod-usb2 \
257 kmod-usb-storage block-mount kmod-usb-net-qmi-wwan uqmi
258 IMAGE_SIZE := 16000k
259 endef
260
261 define Device/glinet_gl-x1200-nor-nand
262 $(Device/glinet_gl-x1200-common)
263 DEVICE_VARIANT := NOR/NAND
264 KERNEL_SIZE := 4096k
265 IMAGE_SIZE := 131072k
266 PAGESIZE := 2048
267 VID_HDR_OFFSET := 2048
268 BLOCKSIZE := 128k
269 IMAGES += factory.img
270 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
271 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
272 endef
273 TARGET_DEVICES += glinet_gl-x1200-nor-nand
274
275 define Device/glinet_gl-x1200-nor
276 $(Device/glinet_gl-x1200-common)
277 DEVICE_VARIANT := NOR
278 endef
279 TARGET_DEVICES += glinet_gl-x1200-nor
280
281 define Device/linksys_ea4500-v3
282 SOC := qca9558
283 DEVICE_VENDOR := Linksys
284 DEVICE_MODEL := EA4500
285 DEVICE_VARIANT := v3
286 DEVICE_PACKAGES := kmod-usb2
287 BLOCKSIZE := 128k
288 PAGESIZE := 2048
289 KERNEL_SIZE := 4096k
290 IMAGE_SIZE := 81920k
291 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
292 LINKSYS_HWNAME := EA4500V3
293 IMAGES += factory.img
294 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | \
295 append-ubi | check-size | linksys-image type=$$$$(LINKSYS_HWNAME)
296 UBINIZE_OPTS := -E 5
297 endef
298 TARGET_DEVICES += linksys_ea4500-v3
299
300 define Device/meraki_mr18
301 SOC := qca9557
302 DEVICE_VENDOR := Meraki
303 DEVICE_MODEL := MR18
304 DEVICE_PACKAGES := kmod-leds-uleds kmod-spi-gpio nu801
305 KERNEL_SIZE := 8m
306 BLOCKSIZE := 128k
307 PAGESIZE := 2048
308 LOADER_TYPE := bin
309 KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | meraki-header MR18
310 # Initramfs-build fails due to size issues
311 # KERNEL_INITRAMFS := $$(KERNEL)
312 KERNEL_INITRAMFS :=
313 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
314 endef
315 TARGET_DEVICES += meraki_mr18
316
317 # fake rootfs is mandatory, pad-offset 129 equals (2 * uimage_header + '\0')
318 define Device/netgear_ath79_nand
319 DEVICE_VENDOR := NETGEAR
320 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
321 KERNEL_SIZE := 4096k
322 BLOCKSIZE := 128k
323 PAGESIZE := 2048
324 IMAGE_SIZE := 25600k
325 KERNEL := kernel-bin | append-dtb | lzma | \
326 pad-offset $$(BLOCKSIZE) 129 | uImage lzma | pad-extra 1 | \
327 append-uImage-fakehdr filesystem $$(UIMAGE_MAGIC)
328 IMAGES := sysupgrade.bin factory.img
329 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | \
330 append-ubi | check-size | netgear-dni
331 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
332 UBINIZE_OPTS := -E 5
333 endef
334
335 define Device/netgear_pgzng1
336 SOC := ar9344
337 DEVICE_MODEL := PGZNG1
338 DEVICE_VENDOR := NETGEAR
339 DEVICE_ALT0_MODEL := Pulse Gateway
340 DEVICE_ALT0_VENDOR := ADT
341 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-i2c-gpio \
342 kmod-leds-pca955x kmod-rtc-isl1208 kmod-spi-dev
343 KERNEL_SIZE := 5120k
344 IMAGE_SIZE := 83968k
345 PAGESIZE := 2048
346 BLOCKSIZE := 128k
347 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
348 endef
349 TARGET_DEVICES += netgear_pgzng1
350
351 define Device/netgear_r6100
352 SOC := ar9344
353 DEVICE_MODEL := R6100
354 UIMAGE_MAGIC := 0x36303030
355 NETGEAR_BOARD_ID := R6100
356 NETGEAR_HW_ID := 29764434+0+128+128+2x2+2x2
357 $(Device/netgear_ath79_nand)
358 DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct
359 endef
360 TARGET_DEVICES += netgear_r6100
361
362 define Device/netgear_wndr3700-v4
363 SOC := ar9344
364 DEVICE_MODEL := WNDR3700
365 DEVICE_VARIANT := v4
366 UIMAGE_MAGIC := 0x33373033
367 NETGEAR_BOARD_ID := WNDR3700v4
368 NETGEAR_HW_ID := 29763948+128+128
369 $(Device/netgear_ath79_nand)
370 endef
371 TARGET_DEVICES += netgear_wndr3700-v4
372
373 define Device/netgear_wndr4300
374 SOC := ar9344
375 DEVICE_MODEL := WNDR4300
376 UIMAGE_MAGIC := 0x33373033
377 NETGEAR_BOARD_ID := WNDR4300
378 NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
379 $(Device/netgear_ath79_nand)
380 endef
381 TARGET_DEVICES += netgear_wndr4300
382
383 define Device/netgear_wndr4300sw
384 SOC := ar9344
385 DEVICE_MODEL := WNDR4300SW
386 UIMAGE_MAGIC := 0x33373033
387 NETGEAR_BOARD_ID := WNDR4300SW
388 NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
389 $(Device/netgear_ath79_nand)
390 endef
391 TARGET_DEVICES += netgear_wndr4300sw
392
393 define Device/netgear_wndr4300tn
394 SOC := ar9344
395 DEVICE_MODEL := WNDR4300TN
396 UIMAGE_MAGIC := 0x33373033
397 NETGEAR_BOARD_ID := WNDR4300TN
398 NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
399 $(Device/netgear_ath79_nand)
400 endef
401 TARGET_DEVICES += netgear_wndr4300tn
402
403 define Device/netgear_wndr4300-v2
404 SOC := qca9563
405 DEVICE_COMPAT_VERSION := 1.1
406 DEVICE_COMPAT_MESSAGE := Partition table has been changed to fix the \
407 first reboot issue. Please reflash factory image with nmrp or tftp.
408 DEVICE_MODEL := WNDR4300
409 DEVICE_VARIANT := v2
410 UIMAGE_MAGIC := 0x27051956
411 NETGEAR_BOARD_ID := WNDR4500series
412 NETGEAR_HW_ID := 29764821+2+128+128+3x3+3x3+5508012175
413 $(Device/netgear_ath79_nand)
414 endef
415 TARGET_DEVICES += netgear_wndr4300-v2
416
417 define Device/netgear_wndr4500-v3
418 SOC := qca9563
419 DEVICE_COMPAT_VERSION := 1.1
420 DEVICE_COMPAT_MESSAGE := Partition table has been changed to fix the \
421 first reboot issue. Please reflash factory image with nmrp or tftp.
422 DEVICE_MODEL := WNDR4500
423 DEVICE_VARIANT := v3
424 UIMAGE_MAGIC := 0x27051956
425 NETGEAR_BOARD_ID := WNDR4500series
426 NETGEAR_HW_ID := 29764821+2+128+128+3x3+3x3+5508012173
427 $(Device/netgear_ath79_nand)
428 endef
429 TARGET_DEVICES += netgear_wndr4500-v3
430
431 define Device/zte_mf28x_common
432 SOC := qca9563
433 DEVICE_VENDOR := ZTE
434 DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct
435 BLOCKSIZE := 128k
436 PAGESIZE := 2048
437 KERNEL_SIZE := 4096k
438 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
439 endef
440
441 define Device/zte_mf281
442 $(Device/zte_mf28x_common)
443 DEVICE_MODEL := MF281
444 KERNEL_SIZE := 6144k
445 IMAGE_SIZE := 29696k
446 IMAGES += factory.bin
447 IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
448 check-size
449 DEVICE_PACKAGES += ath10k-firmware-qca9888-ct kmod-usb-net-rndis \
450 kmod-usb-acm comgt-ncm
451 endef
452 TARGET_DEVICES += zte_mf281
453
454 define Device/zte_mf282
455 $(Device/zte_mf28x_common)
456 DEVICE_MODEL := MF282
457 DEVICE_PACKAGES += ath10k-firmware-qca988x-ct kmod-usb-net-qmi-wwan \
458 kmod-usb-serial-option uqmi
459 endef
460 TARGET_DEVICES += zte_mf282
461
462 define Device/zte_mf286
463 $(Device/zte_mf28x_common)
464 DEVICE_MODEL := MF286
465 DEVICE_PACKAGES += ath10k-firmware-qca988x-ct ath10k-firmware-qca9888-ct \
466 kmod-usb-net-qmi-wwan kmod-usb-serial-option uqmi
467 endef
468 TARGET_DEVICES += zte_mf286
469
470 define Device/zte_mf286a
471 $(Device/zte_mf28x_common)
472 DEVICE_MODEL := MF286A
473 DEVICE_PACKAGES += ath10k-firmware-qca9888-ct kmod-usb-net-qmi-wwan \
474 kmod-usb-serial-option uqmi
475 endef
476 TARGET_DEVICES += zte_mf286a
477
478 define Device/zte_mf286r
479 $(Device/zte_mf28x_common)
480 DEVICE_MODEL := MF286R
481 DEVICE_PACKAGES += ath10k-firmware-qca9888-ct kmod-usb-net-rndis kmod-usb-acm \
482 comgt-ncm
483 endef
484 TARGET_DEVICES += zte_mf286r
485
486 define Device/zyxel_nbg6716
487 SOC := qca9558
488 DEVICE_VENDOR := ZyXEL
489 DEVICE_MODEL := NBG6716
490 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
491 ath10k-firmware-qca988x-ct
492 RAS_BOARD := NBG6716
493 RAS_ROOTFS_SIZE := 29696k
494 RAS_VERSION := "OpenWrt Linux-$(LINUX_VERSION)"
495 KERNEL_SIZE := 4096k
496 BLOCKSIZE := 128k
497 PAGESIZE := 2048
498 LOADER_TYPE := bin
499 KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | uImage none | \
500 zyxel-buildkerneljffs | check-size 4096k
501 IMAGES := sysupgrade.tar sysupgrade-4M-Kernel.bin factory.bin
502 IMAGE/sysupgrade.tar/squashfs := append-rootfs | pad-to $$$$(BLOCKSIZE) | \
503 sysupgrade-tar rootfs=$$$$@ | append-metadata
504 IMAGE/sysupgrade-4M-Kernel.bin/squashfs := append-kernel | \
505 pad-to $$$$(KERNEL_SIZE) | append-ubi | pad-to 263192576 | gzip
506 IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
507 zyxel-factory
508 UBINIZE_OPTS := -E 5
509 endef
510 TARGET_DEVICES += zyxel_nbg6716
511
512 define Device/zyxel_emg2926_q10a
513 $(Device/zyxel_nbg6716)
514 DEVICE_MODEL := EMG2926-Q10A
515 RAS_BOARD := AAVK-EMG2926Q10A
516 endef
517 TARGET_DEVICES += zyxel_emg2926_q10a