ar71xx: add support for COMFAST CF-E380AC v1 and v2
[oweals/openwrt.git] / target / linux / ar71xx / image / generic.mk
1 define Device/bsb
2   DEVICE_TITLE := Smart Electronics Black Swift board
3   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
4   BOARDNAME = BSB
5   IMAGE_SIZE = 16000k
6   CONSOLE = ttyATH0,115200
7   MTDPARTS = spi0.0:128k(u-boot)ro,64k(u-boot-env)ro,16128k(firmware),64k(art)ro
8 endef
9 TARGET_DEVICES += bsb
10
11 define Device/carambola2
12   DEVICE_TITLE := Carambola2 board from 8Devices
13   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
14   BOARDNAME = CARAMBOLA2
15   IMAGE_SIZE = 16000k
16   CONSOLE = ttyATH0,115200
17   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
18 endef
19 TARGET_DEVICES += carambola2
20
21 define Device/cf-e316n-v2
22   DEVICE_TITLE := COMFAST CF-E316N v2
23   BOARDNAME = CF-E316N-V2
24   IMAGE_SIZE = 16192k
25   CONSOLE = ttyS0,115200
26   MTDPARTS = spi0.0:64k(u-boot)ro,64k(art)ro,16192k(firmware),64k(art-backup)ro
27 endef
28 TARGET_DEVICES += cf-e316n-v2
29
30 define Device/cf-e320n-v2
31   $(Device/cf-e316n-v2)
32   DEVICE_TITLE := COMFAST CF-E320N v2
33   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
34   BOARDNAME = CF-E320N-V2
35 endef
36 TARGET_DEVICES += cf-e320n-v2
37
38 define Device/cf-e380ac-v1
39   DEVICE_TITLE := COMFAST CF-E380AC v1
40   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k ath10k-firmware-qca988x
41   BOARDNAME = CF-E380AC-V1
42   IMAGE_SIZE = 16128k
43   CONSOLE = ttyS0,115200
44   MTDPARTS = spi0.0:128k(u-boot)ro,64k(art)ro,16128k(firmware),64k(art-backup)ro
45 endef
46 TARGET_DEVICES += cf-e380ac-v1
47
48 define Device/cf-e380ac-v2
49   $(Device/cf-e380ac-v1)
50   DEVICE_TITLE := COMFAST CF-E380AC v2
51   BOARDNAME = CF-E380AC-V2
52   IMAGE_SIZE = 16000k
53   MTDPARTS = spi0.0:256k(u-boot)ro,64k(art)ro,16000k(firmware),64k(art-backup)ro
54 endef
55 TARGET_DEVICES += cf-e380ac-v2
56
57 define Device/cf-e520n
58   DEVICE_TITLE := COMFAST CF-E520N
59   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
60   BOARDNAME = CF-E520N
61   IMAGE_SIZE = 8000k
62   CONSOLE = ttyS0,115200
63   MTDPARTS = spi0.0:64k(u-boot)ro,64k(art)ro,8000k(firmware),64k(art-backup)ro
64 endef
65 TARGET_DEVICES += cf-e520n
66
67 define Device/cf-e530n
68   $(Device/cf-e520n)
69   DEVICE_TITLE := COMFAST CF-E530N
70   BOARDNAME = CF-E530N
71 endef
72 TARGET_DEVICES += cf-e530n
73
74 define Device/domywifi-dw33d
75   DEVICE_TITLE := DomyWifi DW33D
76   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage kmod-ledtrig-usbdev kmod-ath10k
77   BOARDNAME = DW33D
78   IMAGE_SIZE = 16000k
79   CONSOLE = ttyS0,115200
80   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,14528k(rootfs),1472k(kernel),64k(art)ro,16000k@0x50000(firmware);ar934x-nfc:96m(rootfs_data),32m(backup)ro
81   IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | pad-to 14528k | append-kernel | check-size $$$$(IMAGE_SIZE)
82 endef
83 TARGET_DEVICES += domywifi-dw33d
84
85 define Device/dragino2
86   BOARDNAME := DRAGINO2
87   CONSOLE := ttyATH0,115200
88   DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport
89   DEVICE_TITLE := Dragino 2 (MS14)
90   IMAGE_SIZE := 16000k
91   MTDPARTS := spi0.0:256k(u-boot)ro,16000k(firmware),64k(config)ro,64k(art)ro
92 endef
93 TARGET_DEVICES += dragino2
94
95 define Device/weio
96   DEVICE_TITLE := WeIO
97   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
98   BOARDNAME = WEIO
99   IMAGE_SIZE = 16000k
100   CONSOLE = ttyATH0,115200
101   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
102 endef
103 TARGET_DEVICES += weio
104
105 define Device/gl-ar150
106   DEVICE_TITLE := GL AR150
107   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
108   BOARDNAME = GL-AR150
109   IMAGE_SIZE = 16000k
110   CONSOLE = ttyATH0,115200
111   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
112 endef
113 TARGET_DEVICES += gl-ar150
114
115 define Device/gl-ar300
116   DEVICE_TITLE := GL AR300
117   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
118   BOARDNAME = GL-AR300
119   IMAGE_SIZE = 16000k
120   CONSOLE = ttyS0,115200
121   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
122 endef
123 TARGET_DEVICES += gl-ar300
124
125 define Device/gl-ar300m
126   DEVICE_TITLE := GL AR300M
127   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 uboot-envtools
128   BOARDNAME = GL-AR300M
129   IMAGE_SIZE = 16000k
130   CONSOLE = ttyS0,115200
131   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env),16000k(firmware),64k(art)ro
132 endef
133 TARGET_DEVICES += gl-ar300m
134
135 define Device/gl-domino
136   DEVICE_TITLE := GL Domino Pi
137   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
138   BOARDNAME = DOMINO
139   IMAGE_SIZE = 16000k
140   CONSOLE = ttyATH0,115200
141   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
142 endef
143 TARGET_DEVICES += gl-domino
144
145 define Device/gl-mifi
146   DEVICE_TITLE := GL MIFI
147   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
148   BOARDNAME = GL-MIFI
149   IMAGE_SIZE = 16000k
150   CONSOLE = ttyATH0,115200
151   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
152 endef
153 TARGET_DEVICES += gl-mifi
154
155 define Device/mr12
156   DEVICE_TITLE := Meraki MR12
157   DEVICE_PACKAGES := kmod-spi-gpio
158   BOARDNAME = MR12
159   IMAGE_SIZE = 15680k
160   MTDPARTS = spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,13440k(rootfs),2240k(kernel),64k(mac),128k(art)ro,15680k@0x80000(firmware)
161   IMAGE/kernel.bin = append-kernel
162   IMAGE/rootfs.bin = append-rootfs | pad-rootfs
163   IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | pad-to 13440k | append-kernel | check-size $$$$(IMAGE_SIZE)
164   IMAGES := kernel.bin rootfs.bin sysupgrade.bin
165 endef
166 TARGET_DEVICES += mr12
167
168 define Device/mr16
169   DEVICE_TITLE := Meraki MR16
170   DEVICE_PACKAGES := kmod-spi-gpio
171   BOARDNAME = MR16
172   IMAGE_SIZE = 15680k
173   MTDPARTS = spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,13440k(rootfs),2240k(kernel),64k(mac),128k(art)ro,15680k@0x80000(firmware)
174   IMAGE/kernel.bin = append-kernel
175   IMAGE/rootfs.bin = append-rootfs | pad-rootfs
176   IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | pad-to 13440k | append-kernel | check-size $$$$(IMAGE_SIZE)
177   IMAGES := kernel.bin rootfs.bin sysupgrade.bin
178 endef
179 TARGET_DEVICES += mr16
180
181 define Device/dr531
182   DEVICE_TITLE := Wallys DR531
183   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
184   BOARDNAME = DR531
185   IMAGE_SIZE = 7808k
186   MTDPARTS = spi0.0:192k(u-boot)ro,64k(u-boot-env),64k(partition-table)ro,7808k(firmware),64k(art)ro
187 endef
188 TARGET_DEVICES += dr531
189
190 define Device/wndr3700
191   DEVICE_TITLE := NETGEAR WNDR3700
192   DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport kmod-leds-wndr3700-usb
193   BOARDNAME = WNDR3700
194   NETGEAR_KERNEL_MAGIC = 0x33373030
195   NETGEAR_BOARD_ID = WNDR3700
196   IMAGE_SIZE = 7680k
197   MTDPARTS = spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,7680k(firmware),64k(art)ro
198   IMAGES := sysupgrade.bin factory.img factory-NA.img
199   KERNEL := kernel-bin | patch-cmdline | lzma -d20 | netgear-uImage lzma
200   IMAGE/default = append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | append-rootfs | pad-rootfs
201   IMAGE/sysupgrade.bin = $$(IMAGE/default) | check-size $$$$(IMAGE_SIZE)
202   IMAGE/factory.img = $$(IMAGE/default) | netgear-dni | check-size $$$$(IMAGE_SIZE)
203   IMAGE/factory-NA.img = $$(IMAGE/default) | netgear-dni NA | check-size $$$$(IMAGE_SIZE)
204 endef
205
206 define Device/wndr3700v2
207 $(Device/wndr3700)
208   DEVICE_TITLE := NETGEAR WNDR3700 v2
209   NETGEAR_BOARD_ID = WNDR3700v2
210   NETGEAR_KERNEL_MAGIC = 0x33373031
211   NETGEAR_HW_ID = 29763654+16+64
212   IMAGE_SIZE = 15872k
213   MTDPARTS = spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,15872k(firmware),64k(art)ro
214   IMAGES := sysupgrade.bin factory.img
215 endef
216
217 define Device/wndr3800
218 $(Device/wndr3700v2)
219   DEVICE_TITLE := NETGEAR WNDR3800
220   NETGEAR_BOARD_ID = WNDR3800
221   NETGEAR_HW_ID = 29763654+16+128
222 endef
223
224 define Device/wndr3800ch
225 $(Device/wndr3800)
226   DEVICE_TITLE := NETGEAR WNDR3800 (Ch)
227   NETGEAR_BOARD_ID = WNDR3800CH
228 endef
229
230 define Device/wndrmac
231 $(Device/wndr3700v2)
232   DEVICE_TITLE := NETGEAR WNDRMAC
233   NETGEAR_BOARD_ID = WNDRMAC
234 endef
235
236 define Device/wndrmacv2
237 $(Device/wndr3800)
238   DEVICE_TITLE := NETGEAR WNDRMAC v2
239   NETGEAR_BOARD_ID = WNDRMACv2
240 endef
241
242 TARGET_DEVICES += wndr3700 wndr3700v2 wndr3800 wndr3800ch wndrmac wndrmacv2
243
244 define Device/cap324
245   DEVICE_TITLE := PowerCloud CAP324 Cloud AP
246   DEVICE_PACKAGES := uboot-envtools
247   BOARDNAME := CAP324
248   DEVICE_PROFILE := CAP324
249   IMAGE_SIZE = 15296k
250   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,15296k(firmware),640k(certs),64k(nvram),64k(art)ro
251 endef
252
253 TARGET_DEVICES += cap324
254
255 define Device/cap324-nocloud
256   DEVICE_TITLE := PowerCloud CAP324 Cloud AP (No-Cloud)
257   DEVICE_PACKAGES := uboot-envtools
258   BOARDNAME := CAP324
259   DEVICE_PROFILE := CAP324
260   IMAGE_SIZE = 16000k
261   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
262 endef
263
264 TARGET_DEVICES += cap324-nocloud
265
266 define Device/cr3000
267   DEVICE_TITLE := PowerCloud CR3000 Cloud Router
268   DEVICE_PACKAGES := uboot-envtools
269   BOARDNAME := CR3000
270   DEVICE_PROFILE := CR3000
271   IMAGE_SIZE = 7104k
272   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7104k(firmware),640k(certs),64k(nvram),64k(art)ro
273 endef
274
275 TARGET_DEVICES += cr3000
276
277 define Device/cr3000-nocloud
278   DEVICE_TITLE := PowerCloud CR3000 (No-Cloud)
279   DEVICE_PACKAGES := uboot-envtools
280   BOARDNAME := CR3000
281   DEVICE_PROFILE := CR3000
282   IMAGE_SIZE = 7808k
283   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7808k(firmware),64k(art)ro
284 endef
285
286 TARGET_DEVICES += cr3000-nocloud
287
288 define Device/cr5000
289   DEVICE_TITLE := PowerCloud CR5000 Cloud Router
290   DEVICE_PACKAGES := uboot-envtools kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport kmod-usb-core
291   BOARDNAME := CR5000
292   DEVICE_PROFILE := CR5000
293   IMAGE_SIZE = 7104k
294   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7104k(firmware),640k(certs),64k(nvram),64k(art)ro
295 endef
296
297 TARGET_DEVICES += cr5000
298
299 define Device/cr5000-nocloud
300   DEVICE_TITLE := PowerCloud CR5000 (No-Cloud)
301   DEVICE_PACKAGES := uboot-envtools kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport kmod-usb-core
302   BOARDNAME := CR5000
303   DEVICE_PROFILE := CR5000
304   IMAGE_SIZE = 7808k
305   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7808k(firmware),64k(art)ro
306 endef
307
308 TARGET_DEVICES += cr5000-nocloud
309
310 define Device/antminer-s1
311   $(Device/tplink-8mlzma)
312   DEVICE_TITLE := Antminer-S1
313   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-crypto-manager kmod-i2c-gpio-custom kmod-usb-hid
314   BOARDNAME := ANTMINER-S1
315   DEVICE_PROFILE := ANTMINERS1
316   TPLINK_HWID := 0x04440101
317   CONSOLE := ttyATH0,115200
318 endef
319
320 define Device/antminer-s3
321   $(Device/tplink-8mlzma)
322   DEVICE_TITLE := Antminer-S3
323   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-crypto-manager kmod-i2c-gpio-custom kmod-usb-hid
324   BOARDNAME := ANTMINER-S3
325   DEVICE_PROFILE := ANTMINERS3
326   TPLINK_HWID := 0x04440301
327   CONSOLE := ttyATH0,115200
328 endef
329
330 define Device/antrouter-r1
331   $(Device/tplink-8mlzma)
332   DEVICE_TITLE := Antrouter-R1
333   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
334   BOARDNAME := ANTROUTER-R1
335   DEVICE_PROFILE := ANTROUTERR1
336   TPLINK_HWID := 0x44440101
337   CONSOLE := ttyATH0,115200
338 endef
339
340 define Device/el-m150
341   $(Device/tplink-8mlzma)
342   DEVICE_TITLE := EasyLink EL-M150
343   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
344   BOARDNAME := EL-M150
345   DEVICE_PROFILE := ELM150
346   TPLINK_HWID := 0x01500101
347   CONSOLE := ttyATH0,115200
348 endef
349
350 define Device/el-mini
351   $(Device/tplink-8mlzma)
352   DEVICE_TITLE := EasyLink EL-MINI
353   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
354   BOARDNAME := EL-MINI
355   DEVICE_PROFILE := ELMINI
356   TPLINK_HWID := 0x01530001
357   CONSOLE := ttyATH0,115200
358 endef
359 TARGET_DEVICES += antminer-s1 antminer-s3 antrouter-r1 el-m150 el-mini
360
361 define Device/gl-inet-6408A-v1
362   $(Device/tplink-8mlzma)
363   DEVICE_TITLE := GL.iNet 6408
364   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
365   BOARDNAME := GL-INET
366   DEVICE_PROFILE := GLINET
367   TPLINK_HWID := 0x08000001
368   CONSOLE := ttyATH0,115200
369 endef
370
371 define Device/gl-inet-6416A-v1
372   $(Device/tplink-16mlzma)
373   DEVICE_TITLE := GL.iNet 6416
374   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
375   BOARDNAME := GL-INET
376   DEVICE_PROFILE := GLINET
377   TPLINK_HWID := 0x08000001
378   CONSOLE := ttyATH0,115200
379 endef
380 TARGET_DEVICES += gl-inet-6408A-v1 gl-inet-6416A-v1
381
382 define Device/jwap230
383   DEVICE_TITLE := jjPlus JWAP230
384   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
385   BOARDNAME = JWAP230
386   IMAGE_SIZE = 16000k
387   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env),16000k(firmware),64k(art)ro
388 endef
389 TARGET_DEVICES += jwap230
390
391 define Device/rnx-n360rt
392   $(Device/tplink-4m)
393   DEVICE_TITLE := Rosewill RNX-N360RT
394   BOARDNAME := TL-WR941ND
395   DEVICE_PROFILE := RNXN360RT
396   TPLINK_HWID := 0x09410002
397   TPLINK_HWREV := 0x00420001
398 endef
399 TARGET_DEVICES += rnx-n360rt
400
401 define Device/mc-mac1200r
402   $(Device/tplink-8mlzma)
403   DEVICE_TITLE := MERCURY MAC1200R
404   DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x
405   BOARDNAME := MC-MAC1200R
406   DEVICE_PROFILE := MAC1200R
407   TPLINK_HWID := 0x12000001
408 endef
409 TARGET_DEVICES += mc-mac1200r
410
411 define Device/minibox-v1
412   $(Device/tplink-16mlzma)
413   DEVICE_TITLE := Gainstrong MiniBox V1.0
414   DEVICE_PACKAGES := kmod-usb-core kmod-usb2  kmod-usb-ledtrig-usbport
415   BOARDNAME := MINIBOX-V1
416   DEVICE_PROFILE := MINIBOXV1
417   TPLINK_HWID := 0x3C000201
418   CONSOLE := ttyATH0,115200
419 endef
420 TARGET_DEVICES += minibox-v1
421
422 define Device/omy-g1
423   $(Device/tplink-16mlzma)
424   DEVICE_TITLE := OMYlink OMY-G1
425   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
426   BOARDNAME := OMY-G1
427   DEVICE_PROFILE := OMYG1
428   TPLINK_HWID := 0x06660101
429 endef
430
431 define Device/omy-x1
432   $(Device/tplink-8mlzma)
433   DEVICE_TITLE := OMYlink OMY-X1
434   BOARDNAME := OMY-X1
435   DEVICE_PROFILE := OMYX1
436   TPLINK_HWID := 0x06660201
437 endef
438 TARGET_DEVICES += omy-g1 omy-x1
439
440 define Device/onion-omega
441   $(Device/tplink-16mlzma)
442   DEVICE_TITLE := Onion Omega
443   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage kmod-i2c-core kmod-i2c-gpio-custom kmod-spi-bitbang kmod-spi-dev kmod-spi-gpio kmod-spi-gpio-custom kmod-usb-serial
444   BOARDNAME := ONION-OMEGA
445   DEVICE_PROFILE := OMEGA
446   TPLINK_HWID := 0x04700001
447   CONSOLE := ttyATH0,115200
448 endef
449 TARGET_DEVICES += onion-omega
450
451 define Device/smart-300
452   $(Device/tplink-8mlzma)
453   DEVICE_TITLE := NC-LINK SMART-300
454   BOARDNAME := SMART-300
455   DEVICE_PROFILE := SMART-300
456   TPLINK_HWID := 0x93410001
457 endef
458 TARGET_DEVICES += smart-300
459
460 define Device/som9331
461   $(Device/tplink-8mlzma)
462   DEVICE_TITLE := OpenEmbed SOM9331
463   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage kmod-i2c-core kmod-i2c-gpio-custom kmod-spi-bitbang kmod-spi-dev kmod-spi-gpio kmod-spi-gpio-custom kmod-usb-serial
464   BOARDNAME := SOM9331
465   DEVICE_PROFILE := SOM9331
466   TPLINK_HWID := 0x04800054
467   CONSOLE := ttyATH0,115200
468 endef
469 TARGET_DEVICES += som9331
470
471 define Device/tellstick-znet-lite
472   $(Device/tplink-16mlzma)
473   DEVICE_TITLE := TellStick ZNet Lite
474   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-acm kmod-usb-serial kmod-usb-serial-pl2303
475   BOARDNAME := TELLSTICK-ZNET-LITE
476   DEVICE_PROFILE := TELLSTICKZNETLITE
477   TPLINK_HWID := 0x00726001
478   CONSOLE := ttyATH0,115200
479 endef
480 TARGET_DEVICES += tellstick-znet-lite
481
482 define Device/oolite
483   $(Device/tplink-16mlzma)
484   DEVICE_TITLE := Gainstrong OOLITE
485   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
486   BOARDNAME := GS-OOLITE
487   DEVICE_PROFILE := OOLITE
488   TPLINK_HWID := 0x3C000101
489   CONSOLE := ttyATH0,115200
490 endef
491 TARGET_DEVICES += oolite
492
493
494 define Device/NBG6616
495   DEVICE_TITLE := ZyXEL NBG6616
496   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-usb-storage kmod-rtc-pcf8563 kmod-ath10k ath10k-firmware-qca988x
497   BOARDNAME = NBG6616
498   KERNEL_SIZE = 2048k
499   IMAGE_SIZE = 15323k
500   MTDPARTS = spi0.0:192k(u-boot)ro,64k(env)ro,64k(RFdata)ro,384k(zyxel_rfsd),384k(romd),64k(header),2048k(kernel),13184k(rootfs),15232k@0x120000(firmware)
501   CMDLINE += mem=128M
502   IMAGES := sysupgrade.bin
503   KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma | jffs2 boot/vmlinux.lzma.uImage
504   IMAGE/sysupgrade.bin = append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
505   # We cannot currently build a factory image. It is the sysupgrade image
506   # prefixed with a header (which is actually written into the MTD device).
507   # The header is 2kiB and is filled with 0xff. The format seems to be:
508   #   2 bytes:  0x0000
509   #   2 bytes:  checksum of the data partition (big endian)
510   #   4 bytes:  length of the contained image file (big endian)
511   #  32 bytes:  Firmware Version string (NUL terminated, 0xff padded)
512   #   2 bytes:  0x0000
513   #   2 bytes:  checksum over the header partition (big endian)
514   #  32 bytes:  Model (e.g. "NBG6616", NUL termiated, 0xff padded)
515   #      rest: 0xff padding
516   #
517   # The checksums are calculated by adding up all bytes and if a 16bit
518   # overflow occurs, one is added and the sum is masked to 16 bit:
519   #   csum = csum + databyte; if (csum > 0xffff) { csum += 1; csum &= 0xffff };
520   # Should the file have an odd number of bytes then the byte len-0x800 is
521   # used additionally.
522   # The checksum for the header is calcualted over the first 2048 bytes with
523   # the firmware checksum as the placeholder during calculation.
524   #
525   # The header is padded with 0xff to the erase block size of the device.
526 endef
527
528 TARGET_DEVICES += NBG6616
529
530 define Device/c-55
531   DEVICE_TITLE := AirTight Networks C-55
532   DEVICE_PACKAGES := kmod-ath9k
533   BOARDNAME = C-55
534   KERNEL_SIZE = 2048k
535   IMAGE_SIZE = 15872k
536   MTDPARTS = spi0.0:256k(u-boot)ro,128k(u-boot-env)ro,2048k(kernel),13824k(rootfs),13824k(opt)ro,2624k(failsafe)ro,64k(art)ro,15872k@0x60000(firmware)
537   IMAGE/sysupgrade.bin = append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
538 endef
539
540 TARGET_DEVICES += c-55
541
542
543 define Build/uImageHiWiFi
544         # Field ih_name needs to start with "tw150v1"
545         mkimage -A $(LINUX_KARCH) \
546                 -O linux -T kernel \
547                 -C $(1) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
548                 -n 'tw150v1 $(call toupper,$(LINUX_KARCH)) LEDE Linux-$(LINUX_VERSION)' -d $@ $@.new
549         @mv $@.new $@
550 endef
551
552 define Device/hiwifi-hc6361
553   DEVICE_TITLE := HiWiFi HC6361
554   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage \
555         kmod-fs-ext4 kmod-nls-iso8859-1 e2fsprogs
556   BOARDNAME := HiWiFi-HC6361
557   DEVICE_PROFILE := HIWIFI_HC6361
558   IMAGE_SIZE := 16128k
559   KERNEL := kernel-bin | patch-cmdline | lzma | uImageHiWiFi lzma
560   CONSOLE := ttyATH0,115200
561   MTDPARTS := spi0.0:64k(u-boot)ro,64k(bdinfo)ro,16128k(firmware),64k(backup)ro,64k(art)ro
562 endef
563 TARGET_DEVICES += hiwifi-hc6361
564
565
566 define Build/seama
567         $(STAGING_DIR_HOST)/bin/seama -i $@ $(if $(1),$(1),-m "dev=/dev/mtdblock/1" -m "type=firmware")
568         mv $@.seama $@
569 endef
570
571 define Build/seama-seal
572         $(call Build/seama,-s $@.seama $(1))
573 endef
574
575 define Device/seama
576   CONSOLE := ttyS0,115200
577   LOADER_TYPE := bin
578   BLOCKSIZE := 64k
579   KERNEL := kernel-bin | patch-cmdline | relocate-kernel | lzma
580   KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | seama
581   KERNEL_INITRAMFS_SUFFIX = $$(KERNEL_SUFFIX).seama
582   IMAGES := sysupgrade.bin factory.bin
583
584   # 64 bytes offset:
585   # - 28 bytes seama_header
586   # - 36 bytes of META data (4-bytes aligned)
587   IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs
588   IMAGE/sysupgrade.bin := \
589         $$(IMAGE/default) | seama | pad-rootfs | \
590         check-size $$$$(IMAGE_SIZE)
591   IMAGE/factory.bin := \
592         $$(IMAGE/default) | seama | pad-rootfs | \
593         seama-seal -m "signature=$$$$(SEAMA_SIGNATURE)" | \
594         check-size $$$$(IMAGE_SIZE)
595   SEAMA_SIGNATURE :=
596   DEVICE_VARS += SEAMA_SIGNATURE
597 endef
598
599 define Device/dir-869-a1
600 $(Device/seama)
601   DEVICE_TITLE := D-Link DIR-869 rev. A1
602   DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x
603   BOARDNAME = DIR-869-A1
604   IMAGE_SIZE = 15872k
605   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(devdata)ro,64k(devconf)ro,15872k(firmware),64k(radiocfg)ro
606   SEAMA_SIGNATURE := wrgac54_dlink.2015_dir869
607   IMAGE/factory.bin := \
608         $$(IMAGE/default) | pad-rootfs -x 64 | \
609         seama | seama-seal -m "signature=$$$$(SEAMA_SIGNATURE)" | \
610         check-size $$$$(IMAGE_SIZE)
611 endef
612
613 define Device/mynet-n600
614 $(Device/seama)
615   DEVICE_TITLE := Western Digital My Net N600
616   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
617   BOARDNAME = MYNET-N600
618   IMAGE_SIZE = 15808k
619   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(devdata)ro,64k(devconf)ro,15872k(firmware),64k(radiocfg)ro
620   SEAMA_SIGNATURE := wrgnd16_wd_db600
621 endef
622
623 define Device/mynet-n750
624 $(Device/seama)
625   DEVICE_TITLE := Western Digital My Net N750
626   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
627   BOARDNAME = MYNET-N750
628   IMAGE_SIZE = 15808k
629   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(devdata)ro,64k(devconf)ro,15872k(firmware),64k(radiocfg)ro
630   SEAMA_SIGNATURE := wrgnd13_wd_av
631 endef
632
633 define Device/qihoo-c301
634 $(Device/seama)
635   DEVICE_TITLE := Qihoo C301
636   DEVICE_PACKAGES :=  kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k ath10k-firmware-qca988x
637   BOARDNAME = QIHOO-C301
638   IMAGE_SIZE = 15744k
639   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env),64k(devdata),64k(devconf),15744k(firmware),64k(warm_start),64k(action_image_config),64k(radiocfg)ro;spi0.1:15360k(upgrade2),1024k(privatedata)
640   SEAMA_SIGNATURE := wrgac26_qihoo360_360rg
641 endef
642
643 TARGET_DEVICES += dir-869-a1 mynet-n600 mynet-n750 qihoo-c301
644
645 define Build/mkwrggimg
646         $(STAGING_DIR_HOST)/bin/mkwrggimg -b \
647                 -i $@ -o $@.imghdr -d /dev/mtdblock/1 \
648                 -m $(BOARDNAME) -s $(DAP_SIGNATURE) \
649                 -v LEDE -B $(REVISION)
650         mv $@.imghdr $@
651 endef
652
653 define Build/wrgg-pad-rootfs
654         $(STAGING_DIR_HOST)/bin/padjffs2 $(IMAGE_ROOTFS) -c 64 >>$@
655 endef
656
657 define Device/dap-2695-a1
658   DEVICE_TITLE := D-Link DAP-2695 rev. A1
659   DEVICE_PACKAGES := ath10k-firmware-qca988x kmod-ath10k uboot-envtools
660   BOARDNAME = DAP-2695-A1
661   IMAGES := factory.img sysupgrade.bin
662   IMAGE_SIZE = 15360k
663   IMAGE/factory.img = append-kernel | pad-offset 65536 160 | append-rootfs | wrgg-pad-rootfs | mkwrggimg | check-size $$$$(IMAGE_SIZE)
664   IMAGE/sysupgrade.bin = append-kernel | pad-offset 65536 160 | mkwrggimg | append-rootfs | wrgg-pad-rootfs | check-size $$$$(IMAGE_SIZE)
665   KERNEL := kernel-bin | patch-cmdline | relocate-kernel | lzma
666   KERNEL_INITRAMFS := $$(KERNEL) | mkwrggimg
667   MTDPARTS = spi0.0:256k(bootloader)ro,64k(bdcfg)ro,64k(rgdb)ro,64k(langpack)ro,15360k(firmware),448k(captival)ro,64k(certificate)ro,64k(radiocfg)ro
668   DAP_SIGNATURE := wapac02_dkbs_dap2695
669   DEVICE_VARS += DAP_SIGNATURE
670 endef
671
672 TARGET_DEVICES += dap-2695-a1
673
674 define Build/mkbuffaloimg
675         $(STAGING_DIR_HOST)/bin/mkbuffaloimg -B $(BOARDNAME) \
676                 -R $$(($(subst k, * 1024,$(ROOTFS_SIZE)))) \
677                 -K $$(($(subst k, * 1024,$(KERNEL_SIZE)))) \
678                 -i $@ -o $@.new
679         mv $@.new $@
680 endef
681
682 define Device/bhr-4grv2
683   DEVICE_TITLE := Buffalo BHR-4GRV2
684   BOARDNAME := BHR-4GRV2
685   ROOTFS_SIZE := 14528k
686   KERNEL_SIZE := 1472k
687   IMAGE_SIZE := 16000k
688   MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,14528k(rootfs),1472k(kernel),64k(art)ro,16000k@0x50000(firmware)
689   IMAGES := sysupgrade.bin factory.bin
690   IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | pad-to $$$$(ROOTFS_SIZE) | append-kernel | check-size $$$$(IMAGE_SIZE)
691   IMAGE/factory.bin = append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | mkbuffaloimg
692 endef
693 TARGET_DEVICES += bhr-4grv2