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