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